NodeJS井字游戏多人游戏
即时消息真的令人沮丧,我不能解决这个问题,即时尝试它,因为天,即时通讯开发一个游戏(井字游戏)它具有使用nodeJS多人游戏function,问题不是游戏,问题是处理不同的房间…
我使用socket.join等,所以用户可以join不同的房间; join不同的游戏也板我通过url游戏名称,例如:
本地主机?游戏ID =testing
然后我parsing这个名字,并开始发送板给这些用户。 还有问题是,当我有更多的一个,游戏崩溃,也从房间1崩溃与房间2的董事会信息…我找不到错误,我粘贴在这里的代码:
Create.html jsfiddle.net/svaae1vL/
Enter.html jsfiddle.net/6qzbpbxx/
Server.js jsfiddle.net/1q0qo8xo/
就像我以前说的那样,问题是:
房间1:玩家1,玩家2房间2:玩家3,玩家4
room1: [x,o,x] [0, 0, 0] [x,x,x] room2: [x,o,x] [0, 0, 0] [x,x,x]
另外,当我在room1中单击,它会影响room2,请帮助我卡住,因为天… … –
我相信你的问题是你在createRoom事件中共享variablesemptyBoard
:
boards[data.name] = emptyBoard;
因此,如果您编辑一个电路板,它也会编辑所有其他电路板。 尝试将作业更改为:
boards[data.name] = emptyBoard.slice(0);
这应该克隆到另一个对象的数组。
编辑:
使用slice(0)
克隆数组不会克隆数组中的对象,因此您可能需要的是深度克隆,如此处所述。
@Dygestor
嘿,非常感谢你,这一行:
板[data.name] = emptyBoard.slice(0);
还没有修复,但问题是你说的,所以我试过这个:
// Initalize board. boards[data.name] = [ ['', '', ''], ['', '', ''], ['', '', ''] ];
它的工作,非常感谢你!