编辑似乎我对游戏实际运作方式得到了不同的反应,并且在阅读了官方规则并与众多扑克伙伴交谈后,我想我自己也不知道规则。任何澄清将不胜感激。
我正在使用 MSVC++ 2010 Express 开发一个小型扑克游戏,并且一直在尝试想出一种方法来编写子底池系统。出于某种原因,我无法理解它应该如何工作,并且想知道 SO 是否可以发布一些方法来解决它。这是一种特殊情况,在德州扑克游戏中很可能会发生。
情况:
玩家 A 有 50 美元的筹码首先行动并决定全押。玩家 B 加注到 150 美元。玩家 C 只有价值 70 美元的筹码并决定全押。玩家 D 只有 20 美元并全押。现在,我如何设计一个子底池机制来跟踪所有这些。
据我了解,会发生什么:
玩家 A 用 50 美元创造主底池。你把 B 和 C 的 50 美元加起来,使主底池变成 150 美元。然后,您将玩家 B 剩余的 100 美元分成 80 美元和 20 美元。然后你为玩家 B 和 C 做一个价值 40 美元的子底池(玩家 C 从 70 美元中剩下的),然后你将玩家 B 的 80 美元返还给玩家 B,因为没有人可以覆盖它。玩家 D 的 20 美元赌注进入玩家 B,Cs 的 40 美元子底池现在价值 60 美元。* (或者这不会被添加?它不会被添加到任何投注中,因为它无法覆盖 50 美元的主底池,如果是这样,那么它们不会被添加到任何投注中*
现在,当它下降到评估时。如果玩家 A 赢了,他从玩家 A、B 和 C 那里赢得了 150 美元。接下来,玩家 B、C 和 D 用他们价值 60 美元的子底池继续比赛。
如果玩家 B 赢了,他就赢了一切。
如果玩家 C 赢了,他从玩家 A、B 和 C 那里赢得 150 美元。然后他向玩家 B 和 D 挑战 60 美元。
玩家 D 只能赢得 60 美元,而当玩家 A、B 和 C 的底池跌到这么远时,已经有人赢得了玩家 A、B 和 C 的底池。(取决于这是否被添加到 B 和 C 的底池中,因为它不包括主要的 50 美元下注)
一切都应该这样吗?我很难弄清楚如何跟踪每个赌注和子底池。任何想法或实现它的合乎逻辑的方法都会有很大帮助。感谢您的时间。:-)
我在考虑让每个赌注都成为一个唯一的 id,或者每轮都有一个 id,并将每个赌注添加到要评估的数组中,该数组也指向包含玩家信息的容器。我还必须考虑到一些玩家可能在子底池中并且已经在手牌并且弃牌,这意味着我也必须跟踪这一点。