Rails 两人纸牌游戏

Posted

技术标签:

【中文标题】Rails 两人纸牌游戏【英文标题】:Rails Two players card game 【发布时间】:2014-09-04 05:47:44 【问题描述】:

我需要实现两个玩家之间的纸牌游戏。一个玩家点击“下注”按钮,然后一个游戏出现在队列列表中,另一个玩家点击“加入”按钮,然后游戏开始。我使用的技术包括 Rails 4、websocket-rails、jQuery。我很困惑的是如何向每个玩家展示他们自己的牌,而不是在棋盘上展示对手的牌。为此目的使用了什么技术?我认为我应该使用内部 websocket-rails 的 connection_store 方法来存储玩家的卡片,但我不确定如何在游戏后期使用它以及如何将每个玩家的卡片存储在变量中

这里有人对 websocket-rails 有过这种经验吗?有什么建议吗?

【问题讨论】:

【参考方案1】:

我不确定,但您可以为每个用户创建 uniq chanel 并将特定数据发送到此频道(例如有关用户卡的数据)。您还可以为具体游戏创建第二个广播频道,当刚加入的用户可以向它发送消息时,您可以在那里为游戏中的所有用户提供可访问的数据。关于connection_store,你可以看看DataStore。

关于发牌,你应该有一些牌(36张牌),当游戏开始时你可以为每个用户随机选择几张牌(取决于游戏),每个连接到游戏的用户都有自己独特的chanel你可以放这些卡,在广播频道你可以放一些游戏数据(比如有多少玩家,谁应该先跑等)如果用户做了一些动作你可以触发它并将数据发送到服务器(比如把卡放在表)然后您将这个公共动作发送给广播频道,并赋予其他用户做其他事情的能力。一个客户端上的 Jquery 不应该知道其他客户端有哪些卡。用户之间的所有操作都经过服务器。

【讨论】:

感谢您的回复,但我仍然不明白渠道如何帮助我向参与游戏的登录用户发牌。我在 jquery 中需要 if user1 deal cards1 else if user2 deal cards 2 之类的东西,但是 jquery 不知道当前登录的用户是谁 添加一些关于发牌的内容

以上是关于Rails 两人纸牌游戏的主要内容,如果未能解决你的问题,请参考以下文章

博弈论——两人取子游戏与威佐夫博弈,隐藏在背后的黄金分割

BZOJ 4035 4035: [HAOI2015]数组游戏 (博弈)

nim游戏解法(转)

第五届在线编程大赛月赛第三题:石子游戏

第五届在线编程大赛月赛第三题:石子游戏

NOIP模拟赛(2017.9.15) -游戏(game)