`
逐行分析JS源代码
  • 浏览: 87994 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

js 象棋游戏 _ 支持双方在线对战

阅读更多

 

说明:实在对不住诸位,的确是弄错了,views/index.ejs里的对 socket.io.js的引用使用了我本地的绝对路径,需要修改为<script src="/socket.io/socket.io.js"></script>即可,对此我重新打了个包。再次歉意!!!

 

上周做了javascript版的象棋游戏【详见 js 写中国象棋游戏_应用backbone、canvas】,在iteye上发布后,承蒙诸位赏脸,有所反响。

 

    经广大朋友指点,本周在前一游戏的基础上增加了 双方玩家可在 浏览器 上 在线对战 的 功能,有朋友提议用 ajax 或 falsh 可以通信,但前者较初级,后者非前端技术。衡量下接受了另一个网友提议的 nodeJS + websocket,实际开发是使用 express + socket.io 框架实现。因暂无 nodeJS 服务器可用,需要大家先自己在电脑上配置下环境运行,非常简单。

 

配置方法:

1、下载附件文件压缩包,解压到本地,如 E:/chess

2、如无 nodeJS 先安装 http://nodejs.org/

2、运行 cmd,执行 npm install -g express [ 安装express框架包 ] 

3、命令进入chess文件夹 执行 npm install  [ 安装依赖包,主要是 socket.io ] 【注意文件夹路径,有人反馈,找不到,是因为解压方式的不同,可能会是 E:/chess/chess 】

4、启动 node app.js

 

上述四步即可,如果无法运行 可留言。

 

功能介绍:

1、使用chrome打开 本地服务 ,可以先通过 ipconfig 查询自己的本地IP,如172.7.1.60,用浏览器打开本地IP加端口号,如 http://172.7.1.56:3000 ,会自动为网址后添加随机数作为房间号, 如 http://172.7.1.56:3000/31 【如只本地测试也可以打开 http://127.0.0.1:3000 】,  此时会提示“暂无其他玩家,将本页面网址发给朋友打开,即可进行游戏连接”。如图


 

 

2、当另一可访问你电脑的玩家打开同样的网址,或自己再本机用另一浏览器打开同样的网址, 会提示 “对方已进入,可以开始游戏”。注意房间号要相同。

 

3、当双方都点击开始后,棋子自动从棋盒进入棋盘并摆放好位置。如图

比赛开始

 

4、双方按象棋规则进行,被吃掉的子会自动放回棋盒。如图

吃子

 

5、当一方获胜时,提示胜利

 

6、此时可以点击开始 进行新一轮游戏

 

7、当一方离开时,提示“对方已离开”

 

8、右下角,有一个简单的实时聊天框,以供双方及时通讯

 

象棋本身的制作规则建议看 【详见 js 写中国象棋游戏_应用backbone、canvas】

本案例主要使用了 

jQuery - 底层

Backbone - MVC框架,对象棋视图、模型、事件有效管理

express - 封装 nodeJS,作后台服务

socket.io - 封装 websocket,作数据通信

 

本来是想做一个可多房间选择版的,已初步完成并可用,但因还需要维护各房间状态,本周无法及时发布,暂弃。如图


 

 

还望广大朋友支持的功能有

1、如何做各种状态下的声音提示

2、找一个可以免费使用的支持nodeJS的服务器,放上去可供大家直接试用

3、支持摄像头实时视频

 

现在我们前端开发可以用 nodeJS 搭后台环境,可以用 socket 做通信,前端已经已经成为越来越重要的存在,望广大前端爱好者,共同努力,扩大我们前端的作用 及 影响。

 

有意见、建议欢迎留言

 

  • 大小: 56.5 KB
  • 大小: 75.6 KB
  • 大小: 82.5 KB
  • 大小: 59.9 KB
  • 大小: 75 KB
  • 大小: 59.1 KB
  • 大小: 31.8 KB
13
9
分享到:
评论
42 楼 无谓之有所谓 2017-06-08  
C:\Users\Administrator\Desktop\chess>node app.js
Express server listening on port 3000
GET /74 304 29ms
GET /stylesheets/css.css 304 28ms
GET /javascripts/underscore.js 304 49ms
GET /javascripts/jquery.js 304 54ms
GET /javascripts/json2.js 304 101ms
GET /javascripts/backbone.js 304 107ms
GET /javascripts/chess.js 304 209ms
C:\Users\Administrator\Desktop\chess\app.js:45
                if( socket.manager.rooms['/'+data.roomId] && socket.manager.rooms['/'+data.roomId].length > 1 ){
                                  ^

TypeError: Cannot read property 'rooms' of undefined
    at Socket.<anonymous> (C:\Users\Administrator\Desktop\chess\app.js:45:21)
    at emitOne (events.js:96:13)
    at Socket.emit (events.js:188:7)
    at C:\Users\Administrator\Desktop\chess\node_modules\socket.io\lib\socket.js:510:12
    at _combinedTickCallback (internal/process/next_tick.js:73:7)


这什么原因?而且外网访问不了,我是在服务器上测试的,有独立ip
41 楼 437455889 2017-05-29  
曾经的王1996 写道
wuqingdong 写道
Express server listening on port 3000
GET / 304 13ms
GET /stylesheets/css.css 304 12ms
GET /javascrip
曾经的王1996 写道
wuqingdong 写道
Express server listening on port 3000
GET / 304 13ms
GET /stylesheets/css.css 304 12ms
GET /javascripts/underscore.js 304 11ms
GET /javascripts/jquery.js 304 12ms
GET /javascripts/json2.js 304 12ms
GET /javascripts/backbone.js 304 14ms
GET /javascripts/chess.js 304 3ms
GET /53 200 8ms - 1.46kb
GET /stylesheets/css.css 304 1ms
GET /javascripts/underscore.js 304 7ms
GET /javascripts/jquery.js 304 9ms
GET /javascripts/json2.js 304 4ms
GET /javascripts/backbone.js 304 4ms
GET /javascripts/chess.js 304 5ms
E:\chess\app.js:45
                if( socket.manager.rooms['/'+data.roomId] && socket.manager.room
s['/'+data.roomId].length > 1 ){
                                  ^

TypeError: Cannot read property 'rooms' of undefined
    at Socket.<anonymous> (E:\chess\app.js:45:21)
    at emitOne (events.js:96:13)
    at Socket.emit (events.js:188:7)
    at E:\chess\node_modules\socket.io\lib\socket.js:503:12
    at _combinedTickCallback (internal/process/next_tick.js:73:7)
    at process._tickCallback (internal/process/next_tick.js:104:9)

E:\chess>

E:\chess>

这个怎么解决呀


ts/underscore.js 304 11ms
GET /javascripts/jquery.js 304 12ms
GET /javascripts/json2.js 304 12ms
GET /javascripts/backbone.js 304 14ms
GET /javascripts/chess.js 304 3ms
GET /53 200 8ms - 1.46kb
GET /stylesheets/css.css 304 1ms
GET /javascripts/underscore.js 304 7ms
GET /javascripts/jquery.js 304 9ms
GET /javascripts/json2.js 304 4ms
GET /javascripts/backbone.js 304 4ms
GET /javascripts/chess.js 304 5ms
E:\chess\app.js:45
                if( socket.manager.rooms['/'+data.roomId] && socket.manager.room
s['/'+data.roomId].length > 1 ){
                                  ^

TypeError: Cannot read property 'rooms' of undefined
    at Socket.<anonymous> (E:\chess\app.js:45:21)
    at emitOne (events.js:96:13)
    at Socket.emit (events.js:188:7)
    at E:\chess\node_modules\socket.io\lib\socket.js:503:12
    at _combinedTickCallback (internal/process/next_tick.js:73:7)
    at process._tickCallback (internal/process/next_tick.js:104:9)

E:\chess>

E:\chess>

这个怎么解决呀


socket.io版本问题,把package.json改一下就好了
{
  "name": "application-name",
  "version": "0.0.1",
  "private": true,
  "scripts": {
    "start": "node app.js"
  },
  "dependencies": {
    "express": "3.3.1",
    "ejs": "*",
    "socket.io": "0.9.16"
  }
}
40 楼 曾经的王1996 2017-04-25  
wuqingdong 写道
Express server listening on port 3000
GET / 304 13ms
GET /stylesheets/css.css 304 12ms
GET /javascripts/underscore.js 304 11ms
GET /javascripts/jquery.js 304 12ms
GET /javascripts/json2.js 304 12ms
GET /javascripts/backbone.js 304 14ms
GET /javascripts/chess.js 304 3ms
GET /53 200 8ms - 1.46kb
GET /stylesheets/css.css 304 1ms
GET /javascripts/underscore.js 304 7ms
GET /javascripts/jquery.js 304 9ms
GET /javascripts/json2.js 304 4ms
GET /javascripts/backbone.js 304 4ms
GET /javascripts/chess.js 304 5ms
E:\chess\app.js:45
                if( socket.manager.rooms['/'+data.roomId] && socket.manager.room
s['/'+data.roomId].length > 1 ){
                                  ^

TypeError: Cannot read property 'rooms' of undefined
    at Socket.<anonymous> (E:\chess\app.js:45:21)
    at emitOne (events.js:96:13)
    at Socket.emit (events.js:188:7)
    at E:\chess\node_modules\socket.io\lib\socket.js:503:12
    at _combinedTickCallback (internal/process/next_tick.js:73:7)
    at process._tickCallback (internal/process/next_tick.js:104:9)

E:\chess>

E:\chess>

这个怎么解决呀

39 楼 wuqingdong 2017-04-16  
Express server listening on port 3000
GET / 304 13ms
GET /stylesheets/css.css 304 12ms
GET /javascripts/underscore.js 304 11ms
GET /javascripts/jquery.js 304 12ms
GET /javascripts/json2.js 304 12ms
GET /javascripts/backbone.js 304 14ms
GET /javascripts/chess.js 304 3ms
GET /53 200 8ms - 1.46kb
GET /stylesheets/css.css 304 1ms
GET /javascripts/underscore.js 304 7ms
GET /javascripts/jquery.js 304 9ms
GET /javascripts/json2.js 304 4ms
GET /javascripts/backbone.js 304 4ms
GET /javascripts/chess.js 304 5ms
E:\chess\app.js:45
                if( socket.manager.rooms['/'+data.roomId] && socket.manager.room
s['/'+data.roomId].length > 1 ){
                                  ^

TypeError: Cannot read property 'rooms' of undefined
    at Socket.<anonymous> (E:\chess\app.js:45:21)
    at emitOne (events.js:96:13)
    at Socket.emit (events.js:188:7)
    at E:\chess\node_modules\socket.io\lib\socket.js:503:12
    at _combinedTickCallback (internal/process/next_tick.js:73:7)
    at process._tickCallback (internal/process/next_tick.js:104:9)

E:\chess>

E:\chess>

这个怎么解决呀
38 楼 逐行分析JS源代码 2013-12-03  
gemantic 写道
是否考虑放到我的葡萄藤轻游戏里.
我提供Websocket+后端象棋规则+用户注册+战例保存等等等.

你来做前端UI以及后端通信部分.


葡萄藤轻游戏 有demo没
37 楼 gemantic 2013-12-01  
是否考虑放到我的葡萄藤轻游戏里.
我提供Websocket+后端象棋规则+用户注册+战例保存等等等.

你来做前端UI以及后端通信部分.
36 楼 hlj317 2013-07-11  
楼主真棒~~继续加油~~~
35 楼 逐行分析JS源代码 2013-07-11  
huangchao064 写道
Failed to load resource :http://172.7.1.60:3000/socket.io/socket.io.js
这个提示指向的IP是172.7.1.60也不是我自己电脑的IP.这个IP跟你图片上显示的一样.是不是你哪里的代码把IP写死了啊


这个的确是我弄错了,views/index.ejs里对 socket.io.js的引用 使用了我本地的绝对路径,十分抱歉,改为 <script src="/socket.io/socket.io.js"></script> 可以了,耽误大家时间了。
34 楼 charryong 2013-07-11  
如果不成功,可以试试这样<script src="/socket.io/socket.io.js"></script> 。我把node_modules加入了环境变量里。(node_modules没有安在chess下)。
33 楼 huangchao064 2013-07-11  
Failed to load resource :http://172.7.1.60:3000/socket.io/socket.io.js
这个提示指向的IP是172.7.1.60也不是我自己电脑的IP.这个IP跟你图片上显示的一样.是不是你哪里的代码把IP写死了啊
32 楼 huangchao064 2013-07-11  
逐行分析JS源代码 写道
huangchao064 写道
分享下我安装的过程和解决办法吧.如果没有nodejs环境那么下载一个nodejs
http://nodejs.org/download/
下载对应的,我下载了.exe和.msi的.发现.msi的才可以安装.安装过程一直下一步直至完成,
chess可以放在任意目录底下.
接下来的步骤比较关键
打cmd命令,进入chess目录下面,
可以先打命令 npm ls这时可以看到红色error提示.
我自己的电脑是提示如下
npm error miss :ejs@*......
npm error miss :socket.io@*......
npm error miss :express@*....
那就说明缺少这个3个依赖包,那么依次打命令下载安装就行了
npm install ejs
npm install socket.io
npm install express
注意.这些命令都要在chess目录下面完成的.



不过我现在还有一个问题就是可以启动起来.页面也能进去.但是点击开始按钮,游戏不会开始啊....我同事也可以联机进来.但是也没有提示,也不能开始...

这个就是socket.io没有安装好,你看下 chess\node_modules 下的 socket.io 文件夹有没有

有啊.有这个目录啊在chess下面chess\node_modules\socket.io
31 楼 逐行分析JS源代码 2013-07-10  
huangchao064 写道
分享下我安装的过程和解决办法吧.如果没有nodejs环境那么下载一个nodejs
http://nodejs.org/download/
下载对应的,我下载了.exe和.msi的.发现.msi的才可以安装.安装过程一直下一步直至完成,
chess可以放在任意目录底下.
接下来的步骤比较关键
打cmd命令,进入chess目录下面,
可以先打命令 npm ls这时可以看到红色error提示.
我自己的电脑是提示如下
npm error miss :ejs@*......
npm error miss :socket.io@*......
npm error miss :express@*....
那就说明缺少这个3个依赖包,那么依次打命令下载安装就行了
npm install ejs
npm install socket.io
npm install express
注意.这些命令都要在chess目录下面完成的.



不过我现在还有一个问题就是可以启动起来.页面也能进去.但是点击开始按钮,游戏不会开始啊....我同事也可以联机进来.但是也没有提示,也不能开始...

这个就是socket.io没有安装好,你看下 chess\node_modules 下的 socket.io 文件夹有没有
30 楼 逐行分析JS源代码 2013-07-10  
huangchao064 写道
这是谷歌浏览器报的错误,楼主有时间帮忙看看吧
Uncaught ReferenceError: io is not defined :chess.js:941
Failed to load resource :http://172.7.1.60:3000/socket.io/socket.io.js

怎么样好了没 这个提示说明你socket.io 没有下载好
29 楼 riching 2013-07-10  
nodejs下载安装,真心慢
28 楼 流星划过的天空 2013-07-10  
搞定了。还不错
27 楼 流星划过的天空 2013-07-10  
Microsoft Windows [版本 6.1.7601]
版权所有 (c) 2009 Microsoft Corporation。保留所有权利。

C:\Users\Administrator>npm install -g express
npm http GET https://registry.npmjs.org/express
npm http 304 https://registry.npmjs.org/express
unbuild express@3.3.4
npm http GET https://registry.npmjs.org/connect/2.8.4
npm http GET https://registry.npmjs.org/mkdirp/0.3.5
npm http GET https://registry.npmjs.org/range-parser/0.0.4
npm http GET https://registry.npmjs.org/commander/1.2.0
npm http GET https://registry.npmjs.org/cookie/0.1.0
npm http GET https://registry.npmjs.org/buffer-crc32/0.2.1
npm http GET https://registry.npmjs.org/fresh/0.1.0
npm http GET https://registry.npmjs.org/methods/0.0.1
npm http GET https://registry.npmjs.org/send/0.1.3
npm http GET https://registry.npmjs.org/cookie-signature/1.0.1
npm http GET https://registry.npmjs.org/debug
npm http 304 https://registry.npmjs.org/cookie/0.1.0
npm http GET https://registry.npmjs.org/cookie/-/cookie-0.1.0.tgz
npm http 304 https://registry.npmjs.org/connect/2.8.4
npm http GET https://registry.npmjs.org/connect/-/connect-2.8.4.tgz
npm http 304 https://registry.npmjs.org/buffer-crc32/0.2.1
npm http GET https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.1.tgz
npm http 304 https://registry.npmjs.org/fresh/0.1.0
npm http GET https://registry.npmjs.org/fresh/-/fresh-0.1.0.tgz
npm http 304 https://registry.npmjs.org/methods/0.0.1
npm http GET https://registry.npmjs.org/methods/-/methods-0.0.1.tgz
npm http 304 https://registry.npmjs.org/send/0.1.3
npm http GET https://registry.npmjs.org/send/-/send-0.1.3.tgz
npm http 304 https://registry.npmjs.org/cookie-signature/1.0.1
npm http 304 https://registry.npmjs.org/debug
npm http 304 https://registry.npmjs.org/mkdirp/0.3.5
npm http GET https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.5.tgz
npm http 304 https://registry.npmjs.org/range-parser/0.0.4
npm http GET https://registry.npmjs.org/range-parser/-/range-parser-0.0.4.tgz
npm http 304 https://registry.npmjs.org/commander/1.2.0
npm http GET https://registry.npmjs.org/commander/-/commander-1.2.0.tgz
npm http 200 https://registry.npmjs.org/cookie/-/cookie-0.1.0.tgz
npm http 200 https://registry.npmjs.org/connect/-/connect-2.8.4.tgz
npm http 200 https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.1.tgz
npm http 200 https://registry.npmjs.org/fresh/-/fresh-0.1.0.tgz
npm http 200 https://registry.npmjs.org/send/-/send-0.1.3.tgz
npm http 200 https://registry.npmjs.org/methods/-/methods-0.0.1.tgz
npm http 200 https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.5.tgz
npm http 200 https://registry.npmjs.org/range-parser/-/range-parser-0.0.4.tgz
npm http 200 https://registry.npmjs.org/commander/-/commander-1.2.0.tgz
npm http GET https://registry.npmjs.org/keypress
npm http GET https://registry.npmjs.org/mime
npm http GET https://registry.npmjs.org/qs/0.6.5
npm http GET https://registry.npmjs.org/formidable/1.0.14
npm http GET https://registry.npmjs.org/bytes/0.2.0
npm http GET https://registry.npmjs.org/pause/0.0.1
npm http GET https://registry.npmjs.org/uid2/0.0.2
npm http 304 https://registry.npmjs.org/mime
npm http 304 https://registry.npmjs.org/pause/0.0.1
npm http GET https://registry.npmjs.org/pause/-/pause-0.0.1.tgz
npm http 304 https://registry.npmjs.org/formidable/1.0.14
npm http GET https://registry.npmjs.org/formidable/-/formidable-1.0.14.tgz
npm http 304 https://registry.npmjs.org/keypress
npm http 304 https://registry.npmjs.org/qs/0.6.5
npm http GET https://registry.npmjs.org/qs/-/qs-0.6.5.tgz
npm http 200 https://registry.npmjs.org/pause/-/pause-0.0.1.tgz
npm http 200 https://registry.npmjs.org/formidable/-/formidable-1.0.14.tgz
npm http 304 https://registry.npmjs.org/bytes/0.2.0
npm http GET https://registry.npmjs.org/bytes/-/bytes-0.2.0.tgz
npm http 304 https://registry.npmjs.org/uid2/0.0.2
npm http GET https://registry.npmjs.org/uid2/-/uid2-0.0.2.tgz
npm http 200 https://registry.npmjs.org/qs/-/qs-0.6.5.tgz
npm http 200 https://registry.npmjs.org/bytes/-/bytes-0.2.0.tgz
npm http 200 https://registry.npmjs.org/uid2/-/uid2-0.0.2.tgz
C:\Users\Administrator\AppData\Roaming\npm\express -> C:\Users\Administrator\App
Data\Roaming\npm\node_modules\express\bin\express
express@3.3.4 C:\Users\Administrator\AppData\Roaming\npm\node_modules\express
├── methods@0.0.1
├── fresh@0.1.0
├── range-parser@0.0.4
├── cookie-signature@1.0.1
├── buffer-crc32@0.2.1
├── cookie@0.1.0
├── debug@0.7.2
├── mkdirp@0.3.5
├── send@0.1.3 (mime@1.2.9)
├── commander@1.2.0 (keypress@0.1.0)
└── connect@2.8.4 (uid2@0.0.2, qs@0.6.5, pause@0.0.1, bytes@0.2.0, formidable
@1.0.14)

C:\Users\Administrator>f:

F:\>cd chess

F:\chess>npm install
npm http GET https://registry.npmjs.org/express/3.3.1
npm http GET https://registry.npmjs.org/ejs
npm http GET https://registry.npmjs.org/socket.io
npm http 304 https://registry.npmjs.org/socket.io
npm http 304 https://registry.npmjs.org/express/3.3.1
npm http 304 https://registry.npmjs.org/ejs
npm http GET https://registry.npmjs.org/commander/0.6.1
npm http GET https://registry.npmjs.org/range-parser/0.0.4
npm http GET https://registry.npmjs.org/buffer-crc32/0.2.1
npm http GET https://registry.npmjs.org/mkdirp/0.3.4
npm http GET https://registry.npmjs.org/cookie/0.1.0
npm http GET https://registry.npmjs.org/connect/2.8.1
npm http GET https://registry.npmjs.org/fresh/0.1.0
npm http GET https://registry.npmjs.org/methods/0.0.1
npm http GET https://registry.npmjs.org/send/0.1.1
npm http GET https://registry.npmjs.org/cookie-signature/1.0.1
npm http GET https://registry.npmjs.org/debug
npm http GET https://registry.npmjs.org/policyfile/0.0.4
npm http GET https://registry.npmjs.org/base64id/0.1.0
npm http GET https://registry.npmjs.org/redis/0.7.3
npm http GET https://registry.npmjs.org/socket.io-client/0.9.16
npm http 304 https://registry.npmjs.org/commander/0.6.1
npm http 304 https://registry.npmjs.org/cookie/0.1.0
npm http GET https://registry.npmjs.org/commander/-/commander-0.6.1.tgz
npm http GET https://registry.npmjs.org/cookie/-/cookie-0.1.0.tgz
npm http 304 https://registry.npmjs.org/range-parser/0.0.4
npm http GET https://registry.npmjs.org/range-parser/-/range-parser-0.0.4.tgz
npm http 304 https://registry.npmjs.org/buffer-crc32/0.2.1
npm http 304 https://registry.npmjs.org/mkdirp/0.3.4
npm http GET https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.4.tgz
npm http GET https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.1.tgz
npm http 304 https://registry.npmjs.org/connect/2.8.1
npm http GET https://registry.npmjs.org/connect/-/connect-2.8.1.tgz
npm http 304 https://registry.npmjs.org/methods/0.0.1
npm http GET https://registry.npmjs.org/methods/-/methods-0.0.1.tgz
npm http 304 https://registry.npmjs.org/cookie-signature/1.0.1
npm http 304 https://registry.npmjs.org/send/0.1.1
npm http GET https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.
1.tgz
npm http GET https://registry.npmjs.org/send/-/send-0.1.1.tgz
npm http 304 https://registry.npmjs.org/policyfile/0.0.4
npm http 304 https://registry.npmjs.org/base64id/0.1.0
npm http 304 https://registry.npmjs.org/redis/0.7.3
npm http GET https://registry.npmjs.org/policyfile/-/policyfile-0.0.4.tgz
npm http GET https://registry.npmjs.org/base64id/-/base64id-0.1.0.tgz
npm http GET https://registry.npmjs.org/redis/-/redis-0.7.3.tgz
npm http 304 https://registry.npmjs.org/socket.io-client/0.9.16
npm http GET https://registry.npmjs.org/socket.io-client/-/socket.io-client-0.9.
16.tgz
npm http 304 https://registry.npmjs.org/fresh/0.1.0
npm http GET https://registry.npmjs.org/fresh/-/fresh-0.1.0.tgz
npm http 304 https://registry.npmjs.org/debug
npm http 200 https://registry.npmjs.org/cookie/-/cookie-0.1.0.tgz
npm http 200 https://registry.npmjs.org/range-parser/-/range-parser-0.0.4.tgz
npm http 200 https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.1.tgz
npm http 200 https://registry.npmjs.org/connect/-/connect-2.8.1.tgz
npm http 200 https://registry.npmjs.org/methods/-/methods-0.0.1.tgz
npm http 200 https://registry.npmjs.org/send/-/send-0.1.1.tgz
npm http 200 https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.4.tgz
npm http 200 https://registry.npmjs.org/policyfile/-/policyfile-0.0.4.tgz
npm http 200 https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.
1.tgz
npm http 200 https://registry.npmjs.org/base64id/-/base64id-0.1.0.tgz
npm http 200 https://registry.npmjs.org/commander/-/commander-0.6.1.tgz
npm http 200 https://registry.npmjs.org/redis/-/redis-0.7.3.tgz
npm http 200 https://registry.npmjs.org/socket.io-client/-/socket.io-client-0.9.
16.tgz
npm http 200 https://registry.npmjs.org/fresh/-/fresh-0.1.0.tgz
npm http GET https://registry.npmjs.org/mime
npm http GET https://registry.npmjs.org/formidable/1.0.14
npm http GET https://registry.npmjs.org/qs/0.6.5
npm http GET https://registry.npmjs.org/cookie/0.0.5
npm http GET https://registry.npmjs.org/bytes/0.2.0
npm http GET https://registry.npmjs.org/pause/0.0.1
npm http GET https://registry.npmjs.org/uid2/0.0.2
npm http 304 https://registry.npmjs.org/mime
npm http 304 https://registry.npmjs.org/pause/0.0.1
npm http GET https://registry.npmjs.org/pause/-/pause-0.0.1.tgz
npm http 304 https://registry.npmjs.org/cookie/0.0.5
npm http GET https://registry.npmjs.org/cookie/-/cookie-0.0.5.tgz
npm http 304 https://registry.npmjs.org/uid2/0.0.2
npm http GET https://registry.npmjs.org/uid2/-/uid2-0.0.2.tgz
npm http 304 https://registry.npmjs.org/qs/0.6.5
npm http 304 https://registry.npmjs.org/bytes/0.2.0
npm http 304 https://registry.npmjs.org/formidable/1.0.14
npm http GET https://registry.npmjs.org/bytes/-/bytes-0.2.0.tgz
npm http GET https://registry.npmjs.org/formidable/-/formidable-1.0.14.tgz
npm http GET https://registry.npmjs.org/qs/-/qs-0.6.5.tgz
npm http 200 https://registry.npmjs.org/uid2/-/uid2-0.0.2.tgz
npm http 200 https://registry.npmjs.org/cookie/-/cookie-0.0.5.tgz
npm http 200 https://registry.npmjs.org/formidable/-/formidable-1.0.14.tgz
npm http 200 https://registry.npmjs.org/qs/-/qs-0.6.5.tgz
npm http 200 https://registry.npmjs.org/bytes/-/bytes-0.2.0.tgz
npm http 200 https://registry.npmjs.org/pause/-/pause-0.0.1.tgz
npm http GET https://registry.npmjs.org/uglify-js/1.2.5
npm http GET https://registry.npmjs.org/ws
npm http GET https://registry.npmjs.org/xmlhttprequest/1.4.2
npm http GET https://registry.npmjs.org/active-x-obfuscator/0.0.1
npm http 200 https://registry.npmjs.org/active-x-obfuscator/0.0.1
npm http GET https://registry.npmjs.org/active-x-obfuscator/-/active-x-obfuscato
r-0.0.1.tgz
npm http 200 https://registry.npmjs.org/uglify-js/1.2.5
npm http GET https://registry.npmjs.org/uglify-js/-/uglify-js-1.2.5.tgz
npm http 200 https://registry.npmjs.org/xmlhttprequest/1.4.2
npm http GET https://registry.npmjs.org/xmlhttprequest/-/xmlhttprequest-1.4.2.tg
z
npm http 200 https://registry.npmjs.org/active-x-obfuscator/-/active-x-obfuscato
r-0.0.1.tgz
npm http 200 https://registry.npmjs.org/xmlhttprequest/-/xmlhttprequest-1.4.2.tg
z
npm http 200 https://registry.npmjs.org/uglify-js/-/uglify-js-1.2.5.tgz
npm http 200 https://registry.npmjs.org/ws
npm http GET https://registry.npmjs.org/ws/-/ws-0.4.27.tgz
npm http 200 https://registry.npmjs.org/ws/-/ws-0.4.27.tgz
npm http GET https://registry.npmjs.org/zeparser/0.0.5
npm http GET https://registry.npmjs.org/commander
npm http GET https://registry.npmjs.org/tinycolor
npm http GET https://registry.npmjs.org/options
npm http 200 https://registry.npmjs.org/zeparser/0.0.5
npm http GET https://registry.npmjs.org/zeparser/-/zeparser-0.0.5.tgz
npm http 200 https://registry.npmjs.org/tinycolor
npm http GET https://registry.npmjs.org/tinycolor/-/tinycolor-0.0.1.tgz
npm http 200 https://registry.npmjs.org/options
npm http GET https://registry.npmjs.org/options/-/options-0.0.5.tgz
npm http 200 https://registry.npmjs.org/zeparser/-/zeparser-0.0.5.tgz
npm http 200 https://registry.npmjs.org/options/-/options-0.0.5.tgz
npm http 200 https://registry.npmjs.org/tinycolor/-/tinycolor-0.0.1.tgz
npm http 200 https://registry.npmjs.org/commander

> ws@0.4.27 install F:\chess\node_modules\socket.io\node_modules\socket.io-clien
t\node_modules\ws
> (node-gyp rebuild 2> builderror.log) || (exit 0)


F:\chess\node_modules\socket.io\node_modules\socket.io-client\node_modules\ws>no
de "D:\Program Files\nodejs\node_modules\npm\bin\node-gyp-bin\\..\..\node_module
s\node-gyp\bin\node-gyp.js" rebuild
unbuild active-x-obfuscator@0.0.1
unbuild socket.io-client@0.9.16
unbuild socket.io@0.9.16
npm ERR! Error: shasum check failed for C:\Users\ADMINI~1\AppData\Local\Temp\npm
-11336\1373447370121-0.3529963167384267\tmp.tgz
npm ERR! Expected: 03726561bc268f2e5444f54c665b7fd4a8c029e2
npm ERR! Actual:   6fb39651d2d1995c65acc8976498d1b745c8053b
npm ERR!     at D:\Program Files\nodejs\node_modules\npm\node_modules\sha\index.
js:32:8
npm ERR!     at ReadStream.<anonymous> (D:\Program Files\nodejs\node_modules\npm
\node_modules\sha\index.js:61:7)
npm ERR!     at ReadStream.EventEmitter.emit (events.js:117:20)
npm ERR!     at _stream_readable.js:910:16
npm ERR!     at process._tickCallback (node.js:415:13)
npm ERR! If you need help, you may report this log at:
npm ERR!     <http://github.com/isaacs/npm/issues>
npm ERR! or email it to:
npm ERR!     <npm-@googlegroups.com>

npm ERR! System Windows_NT 6.1.7601
npm ERR! command "D:\\Program Files\\nodejs\\\\node.exe" "D:\\Program Files\\nod
ejs\\node_modules\\npm\\bin\\npm-cli.js" "install"
npm ERR! cwd F:\chess
npm ERR! node -v v0.10.13
npm ERR! npm -v 1.3.2
npm ERR!
npm ERR! Additional logging details can be found in:
npm ERR!     F:\chess\npm-debug.log
npm ERR! not ok code 0

F:\chess>node app.js

module.js:340
    throw err;
          ^
Error: Cannot find module 'socket.io'
    at Function.Module._resolveFilename (module.js:338:15)
    at Function.Module._load (module.js:280:25)
    at Module.require (module.js:364:17)
    at require (module.js:380:17)
    at Object.<anonymous> (F:\chess\app.js:11:14)
    at Module._compile (module.js:456:26)
    at Object.Module._extensions..js (module.js:474:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Function.Module.runMain (module.js:497:10)
26 楼 菜鸟java 2013-07-10  
支持一个啊。
25 楼 hailongshih 2013-07-10  
跟我的问题一样。
分享下我安装的过程和解决办法吧.如果没有nodejs环境那么下载一个
24 楼 huangchao064 2013-07-10  
这是谷歌浏览器报的错误,楼主有时间帮忙看看吧
Uncaught ReferenceError: io is not defined :chess.js:941
Failed to load resource :http://172.7.1.60:3000/socket.io/socket.io.js
23 楼 huangchao064 2013-07-10  
分享下我安装的过程和解决办法吧.如果没有nodejs环境那么下载一个nodejs
http://nodejs.org/download/
下载对应的,我下载了.exe和.msi的.发现.msi的才可以安装.安装过程一直下一步直至完成,
chess可以放在任意目录底下.
接下来的步骤比较关键
打cmd命令,进入chess目录下面,
可以先打命令 npm ls这时可以看到红色error提示.
我自己的电脑是提示如下
npm error miss :ejs@*......
npm error miss :socket.io@*......
npm error miss :express@*....
那就说明缺少这个3个依赖包,那么依次打命令下载安装就行了
npm install ejs
npm install socket.io
npm install express
注意.这些命令都要在chess目录下面完成的.



不过我现在还有一个问题就是可以启动起来.页面也能进去.但是点击开始按钮,游戏不会开始啊....我同事也可以联机进来.但是也没有提示,也不能开始...

相关推荐

    javascript网页版二人对战象棋

    JavaScript网页版二人对战象棋是一款完全基于JavaScript编程语言实现的在线游戏,允许两位玩家在同一网页上进行实时的象棋对决。这样的应用展示了JavaScript在网页交互和实时通信方面的强大功能,同时也涉及到HTML...

    象棋程序(JSP),人人对战

    【标题】"象棋程序(JSP),人人对战"揭示了这是一个基于JSP(Java Server Pages)技术开发的在线象棋游戏平台,允许用户之间进行实时对战。JSP是一种服务器端的脚本语言,它结合了HTML和Java代码,用于创建动态网页...

    Unity游戏源码unity中国象棋

    ### Unity游戏源码unity中国象棋 #### 一、Unity引擎简介 Unity是一款跨平台的游戏开发工具,由Unity Technologies公司开发。它支持多种编程语言,包括C#、JavaScript(即UnityScript)等,并且能够发布到多个平台...

    JS小游戏-象棋暗棋

    【JS小游戏-象棋暗棋】是一个利用JavaScript编程语言开发的休闲娱乐项目,它将中国传统象棋元素融入到“暗棋”玩法中,为玩家提供了一种全新的在线游戏体验。在这款游戏中,棋子被翻转在棋盘上,玩家需要通过推理和...

    PHP + AJAX + MYSQL 网络象棋,可2人网上对战

    【PHP + AJAX + MYSQL 网络象棋】是一个基于Web技术实现的在线对战棋类游戏,允许两位玩家通过互联网进行实时的棋局对抗。这个项目的核心技术栈包括PHP作为后端服务器语言,AJAX(Asynchronous JavaScript and XML)...

    使用 JavaScript 编写的简单 AI 国际象棋游戏(附源代码).zip

    项目:用 JavaScript 实现的简单 AI  国际象棋游戏 这是一款简单的基于 AI 的国际象棋游戏,完全使用 JavaScript 和 HTML5 开发,并添加了 CSS,使其外观漂亮,画龙点睛。该项目已使用 javascript 和 jquery 验证...

    前端-做个简单的象棋游戏

    此外,如果想让游戏支持多人在线对战,可以考虑集成WebSocket或其他实时通信技术,以便实时同步双方玩家的棋盘状态。 在开发过程中,持续优化用户体验也很重要。例如,添加悔棋功能,提供提示和禁手检测,以及友好...

    基于GEC6818五子棋游戏GEC6818_Gomoku.zip

    游戏开始后,玩家在游戏设置中选择人机对战,则系统执黑棋,玩家自己执白棋。双方轮流下一棋,先将横、竖或斜线的5个或5个以上同色棋子连成不间断的一排者为胜。 【项目资源】:包含前端、后端、移动开发、操作系统...

    中国象棋+HTML5+canvas

    总体而言,通过使用HTML5中的Canvas元素来实现中国象棋游戏的在线对战功能,不仅可以使游戏界面更加美观,操作更加流畅,同时也为传统游戏的传承与发展注入了新的活力。随着技术的不断进步和创新,未来的网页游戏将...

    中国象棋online v2008 build 0313(PHP+MYSQL)

    《中国象棋Online v2008 build 0313 (PHP+MYSQL)》是一款基于Web的在线中国象棋游戏平台,它采用PHP编程语言和MYSQL数据库系统进行开发,为用户提供了一个便捷、互动的对战环境。在这个系统中,用户可以在线与他人...

    绝版中国象棋

    【绝版中国象棋】是一款基于Java开发的中国象棋游戏,它利用了JavaScript、jQuery和JSON等技术,为用户提供了一种在线娱乐的平台。在这款游戏中,玩家可以体验到传统中国象棋的乐趣,同时结合现代编程语言和技术,...

    游戏合集:五子棋、中国象棋、国际象棋、黑白棋、军棋、走月光。LifeLikeChess.zip

    游戏开始后,玩家在游戏设置中选择人机对战,则系统执黑棋,玩家自己执白棋。双方轮流下一棋,先将横、竖或斜线的5个或5个以上同色棋子连成不间断的一排者为胜。 【项目资源】:包含前端、后端、移动开发、操作系统...

    中国象棋基于wesocket

    【中国象棋基于WebSocket】项目是一个实现了在线对弈功能的中国象棋应用,它利用了WebSocket技术进行实时的双向通信,让玩家可以在网络上进行实时的棋局对战。WebSocket是一种在客户端和服务器之间建立持久连接的...

    shatranj:使用 node.js 和 socket.io 的 2 个玩家的国际象棋游戏

    《使用Node.js与Socket.IO构建实时双人对战国际象棋游戏》 在现代Web开发中,实时交互已经成为用户体验的重要组成部分。本项目“shatranj”是一个基于Node.js和Socket.IO实现的双人在线国际象棋游戏。下面将详细...

    521YY歪歪网络HTML5中国象棋 v1.0

    《521YY歪歪网络HTML5中国象棋 v1.0》是一款基于HTML5技术开发的在线中国象棋游戏,适用于网站环境,允许用户直接在网页上进行对战。这款应用结合了传统象棋的策略性和现代互联网的便利性,为象棋爱好者提供了全新的...

    php-socket-chess:一个简单的使用 PHP 和 Web Socket 的国际象棋游戏

    【标题】"php-socket-chess" 是一个...总的来说,"php-socket-chess" 项目结合了 PHP、Web Socket 和 JavaScript 的技术,构建了一个实时的在线国际象棋平台,展示了如何在 Web 环境下实现复杂的游戏逻辑和实时交互。

    Chess-TS-Web-App:一种渐进式Web应用程序,允许用户或访客与在线其他玩家或计算机对战国际象棋

    《构建Chess-TS-Web-App:基于JavaScript的在线国际象棋对战平台》 在当今互联网技术高速发展的时代,游戏已经成为人们休闲娱乐的重要方式之一。而棋类游戏,特别是国际象棋,因其策略性和竞技性深受广大爱好者喜爱...

    AI算法,包括五子棋数独拼图,后期可能会有象棋等。wuziqi.zip

    游戏开始后,玩家在游戏设置中选择人机对战,则系统执黑棋,玩家自己执白棋。双方轮流下一棋,先将横、竖或斜线的5个或5个以上同色棋子连成不间断的一排者为胜。 【项目资源】:包含前端、后端、移动开发、操作系统...

    国际象棋

    在这个数字化的时代,利用JavaScript技术,我们可以创建在线的国际象棋游戏平台,让玩家无论身处何处都能享受对弈的乐趣。 在JavaScript中开发在线国际象棋,主要涉及以下几个核心知识点: 1. **DOM操作**:...

Global site tag (gtag.js) - Google Analytics