扑克移动经销商筹码

Poker moving dealer chip

我正在制作一款扑克游戏,我希望能够自定义其中的玩家数量。我正在尝试创建一个函数,将庄家位置移动到 table 的下一位玩家。我有一个播放器对象列表,每个对象都有布尔值 is_dealer。在函数中,我希望能够为列表中的下一个玩家设置布尔值 true,并为我正在迭代的当前玩家设置为 false。我的问题是我不知道如何让列表中的最后一个玩家将位置传递给列表中的第一个玩家。

    def move_positions(self):
    
    for people in range(number_of_players):

             if self.players[people].is_dealer==True:
                self.players[people].is_dealer= False
                self.players[people+1].is_dealer=True

players 是我的玩家对象列表。

找到经销商后立即退出循环。处理最后一位玩家是庄家的情况。另外,删除带有布尔值的比较运算符。

for people in range(number_of_players):
     if self.players[people].is_dealer:
        self.players[people].is_dealer = False 
        self.players[(people+1)%number_of_players].is_dealer = True
        break

我建议,您不必在每次想要提升经销商时都查找当前经销商,您只需使用一个变量来跟踪当前经销商是谁。话虽这么说,这个片段并没有这样做:它找到当前的庄家,然后将下一位玩家设置为庄家,必要时环绕:

def move_positions(self):

    dealer_index = next(index for index, player in enumerate(self.players) if player.is_dealer)
    self.players[dealer_index].is_dealer = False
    self.player[(dealer_index+1)%number_of_players].is_dealer = True