gpt4 book ai didi

javascript - NodeJS Tic Tac Toe 多人游戏

转载 作者:太空狗 更新时间:2023-10-29 16:35:52 29 4
gpt4 key购买 nike

我真的很沮丧,我无法解决这个问题,我从几天前开始尝试,我正在开发一款游戏(井字游戏),它使用 nodeJS 具有多人游戏功能,问题也不在于游戏,问题在于处理不同的房间.. .

我使用 socket.join 等,所以用户可以加入不同的房间;加入不同的游戏也板我通过 url 游戏名称,例如:

localhost?gameId=test

然后我解析这个名字并开始向这些用户发送板。还有一个问题是,当我有更多的时候,游戏崩溃了,房间 1 的棋盘信息也随着房间 2 崩溃了……我找不到错误,我把代码粘贴在这里:

创建.html jsfiddle.net/svaae1vL/

进入.html jsfiddle.net/6qzbpbxx/

服务器.js jsfiddle.net/1q0qo8xo/

就像我之前说的,问题是:

房间 1:玩家 1,玩家 2room2: player3, player4

room1:
[x,o,x]
[0, 0, 0]
[x,x,x]

room2:
[x,o,x]
[0, 0, 0]
[x,x,x]

此外,当我点击 room1 时,它会影响 room2,请帮助我卡住了好几天...

最佳答案

我认为您的问题是您在 createRoom 事件中共享变量 emptyBoard:

boards[data.name] = emptyBoard;

因此,如果您编辑了一个图板,它也会编辑所有其他图板。尝试将分配更改为:

boards[data.name] = emptyBoard.slice(0);

这应该将数组克隆到另一个对象中。

编辑:

slice(0) 克隆数组不会克隆数组中的对象,所以也许您需要的是深度克隆,例如如所述here .

关于javascript - NodeJS Tic Tac Toe 多人游戏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29921031/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com