【问题标题】:Groups turn Based Game团体回合制游戏
【发布时间】:2017-06-17 06:17:56
【问题描述】:

我正在使用 firebase 构建游戏。在那个游戏中,有很多玩家可以玩的房间。我猜这个游戏叫做回合制。 因为只有一个玩家可以抽签,其他人应该像简单的抽签和猜测一样猜测。 我的问题是我怎样才能做到只有一个玩家可以画而其他人猜测。 我的想法是给房间里的每个玩家一个像bool isTurn; 这样的布尔值,如果它是真的,玩家可以画。当然,每个房间中总是只能有一个真正的布尔值。 我的问题是它是否可以像这样工作,是否有更聪明的方法来处理这个问题?

【问题讨论】:

  • 我建议你试试GameDev:gamedev.stackexchange.com
  • 我在 I/O 2017 上做了一个关于使用 Firebase 构建回合制游戏的会议。您可以将状态管理安全地卸载到 Cloud Functions for Firebase,比尝试在客户端上编写代码要少得多。 youtube.com/watch?v=eWj6dxfN63g

标签: java android firebase firebase-realtime-database


【解决方案1】:

我建议使用类似状态机的方法并使用填充玩家的枚举器。例如:

public enum Turn { PLAYER_1, PLAYER_2, PLAYER_3; }

然后随着玩家轮次的变化而增加这些值。布尔值可能也可以,但可能比您喜欢的更复杂。

【讨论】:

    【解决方案2】:

    如果某些东西必须是唯一的,我通常将其建模为 Firebase 数据库中的键。由于键在其上下文中保证是唯一的,因此可以确保我永远不会犯错而破坏唯一性。

    在您的情况下,这可能意味着您有一个包含轮到该用户的 UID 的属性:

    games
      $gameid
        playerWhoseTurnItIs: $uid
    

    您可以将此与 Easton 的 FSM 结合使用,以确保您以有序的方式从一个玩家转移到另一个玩家。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-09-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多