【发布时间】:2023-03-12 18:40:01
【问题描述】:
编辑 看来我对游戏的实际运作方式得到了不同的反应,并且在阅读了官方规则后,与众多扑克伙伴交谈后,我想我自己也不知道规则.任何澄清将不胜感激。
我正在使用 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,然后将每个赌注添加到要评估的数组中,该数组还指向包含玩家信息的容器。我还必须考虑到一些玩家可能在子底池中并且已经在手牌并且弃牌,这意味着我也必须跟踪它。
【问题讨论】:
-
先写最简单的情况,只有一个玩家。然后添加第二个玩家。然后添加许多玩家。如果需要,请向我们展示您的代码。
-
这个问题好像已经回答过了——stackoverflow.com/questions/5462583/…
标签: c++ containers poker