这是一个带有蓝牙的扑克游戏,我在重新分配侧锅时遇到一些困难。有人对此有任何经验吗?




    for(int k = 0; k < numberOfPlayer; k++)
                {
                    canWinSidePotUpTo[k] = -1;
                }
                for(int i = 0 ; i < sidePot.size(); i++) {
                        if (sideTempToRaiseListSorted.get(i) != sideTempToRaiseListSorted.get(i + 1)) {
                            for (int k = 0; k < numberOfPlayer; k++) {
                                print("All in ToRaiseList[" + k + "] = " + toRaiseList[k]);
                                print("All in TempToRaise[" + k + "] = " + tempToRaise[k]);
                                if (sideTempToRaiseListSorted.get(i) == max(toRaiseList) - max(tempToRaise)) {
                                    continue;
                                }
                                if (sideTempToRaiseListSorted.get(i) == (toRaiseList[k] - tempToRaise[k])) {
                                    canWinSidePotUpTo[k] = j;
                                }
                                if (sideTempToRaiseListSorted.get(i + 1) == (toRaiseList[k] - tempToRaise[k])) {
                                    canWinSidePotUpTo[k] = j;
                                }
                                print("All In canWinSidePotUpTo[" + k + "] " + canWinSidePotUpTo[k] + " + i = " + i);
                            }
                            print("All In sideTempToRaiseListSorted.get(" + i + ") " + sideTempToRaiseListSorted.get(i) + " + i = " + i);
                            print("All In sideTempToRaiseListSorted.get(" + (i + 1) + ") " + sideTempToRaiseListSorted.get(i + 1) + " + i + 1 = " + i + 1);
                        }

                    j++;
                }



预期结果是能够设置数组canWinSidePotUpTo [player]
对于每个玩家。
边池从索引0开始,如果玩家只能赢得底池,则canWinSidePotUpTo [player] = -1。 allin的所有玩家的canWinSidePotUpTo [player] = -1,然后canWinSidePotUpTo [player]应根据allin的堆栈进行设置...
实际结果是:

All In canWinSidePotUpTo[0] -1 + i = 1
All In canWinSidePotUpTo[1] 1 + i = 1
All In canWinSidePotUpTo[2] 1 + i = 1
All In canWinSidePotUpTo[3] -1 + i = 1


该结果为:

player:hand:stack allin
0:AA:900
1:KK:1100
2:QQ:1300
3:JJ:1500
pot = 3600
sidepot(0)= 600
sidepot(1) = 400
Flop:AKQJ9


任何帮助都将受到欢迎!

最佳答案

在软件方面,我认为按照与现场游戏经销商相反的顺序进行操作会更简单。在娱乐场中,首先要奖励侧池,然后才是侧池-主要是因为在下注时将池合并,有时这是唯一的方法。

但是在软件中,您可以在下注过程中跟踪每个玩家对底池的总贡献(包括底注和盲注),以进行下注。您不必事后进行计算。因此,要授予底池,您只需要从最佳手牌入手。奖励给他他的贡献,再加上其他每个玩家的最高金额,然后从列表中删除他(以及其他没有贡献的玩家)。然后重复:找到剩余的最好一手,将剩余的贡献加给他,从其他每个人中奖励最多,然后从列表中删除,依此类推。

07-27 22:13