Python中的扑克牌游戏,实现轮次处理

1 投票
1 回答
1173 浏览
提问于 2025-04-18 02:33

我正在写一个扑克游戏,但在创建一个处理回合的功能时遇到了问题。这个功能需要让一个玩家加注,然后另一个玩家跟注,再然后再加注,依此类推。我不太确定该怎么组织这个逻辑。目前我有这样的代码:

def turn(playerBank,label):
    #playerBank is just the player's balance (whoever's turn it is) and label is just  tkinter text.
    win.getMouse()
    action = ent.getText()
    if action == 'check':
        pass
    elif action == 'call':
        playerBank = playerBank - cashMoney
        pool = pool + cashMoney
    elif action == 'raise':
        cashMoney = cash.getText()
        playerBank = playerBank - cashMoney
        pool = pool + cashMoney
    elif action == 'fold':
         break

我该如何让每个玩家轮流进行两次操作呢?如果一个玩家加注了,应该让这个过程再循环一次,这样另一个玩家就可以选择跟注或者弃牌等等?

1 个回答

0

首先想到的就是用布尔值。可以写一个函数来检查回合是否完全结束,再写一个布尔值来检查玩家是否加注。

这个布尔值叫做playerRaise,初始值是false,表示还没有玩家加注。只有当所有玩家都对加注做出反应时,它才会变成true。你可以通过玩家的数量来检查有多少人回应了加注。每当有玩家加注时,这个计数就会重置。

checkTurn这个函数就是用来检查playerRaise是否变成了false。如果是false,那就说明这个回合肯定结束了。

我只是随便想想,但这似乎是个可行的解决方案,你觉得怎么样?

撰写回答