确定哪个玩家在移动中

问题描述 投票:0回答:1

我正在尝试使用python构建纸牌游戏,以便对OOP有所了解。我正在寻找一种确定wchich播放器正在移动的方法。纸牌游戏中的规则是,四个玩家中的一个是发牌人,然后下一个是第一个玩纸牌。我已经搜索了一些方法来做到这一点,但是我找不到解决方案。目前,我有这样的事情:

player_list = [p1, p2, p3, p4]

def func_turn(first_player):
    for i in range(len(player_list)): 

        if first_player + i == 4:
            first_player = 0
        player_list[first_player + i].play_card()

是否有更好的方法可以在播放器类或某些我不知道的列表函数中实现?

预先感谢

python python-3.x algorithm list class
1个回答
0
投票

您可以使用itertools模块中的某些方法来创建适合您的情况的生成器。让我们使用示例列表

itertools

首先,我们想要a = [1, 2, 3, 4] 列表,以便其不断重复。这将给我们

cycle

[下一步,我们要跳过一定数量。这是您的cycle变量,我们要使用>>> b = itertools.cycle(a) # generator object that gives [1, 2, 3, 4, 1, 2, ...] 元素,其中first_player是玩家人数。我们可以使用n方法完成此操作

n

将所有内容放在一起,您会得到

islice
© www.soinside.com 2019 - 2024. All rights reserved.