0

这是我到目前为止得到的。这个游戏最多可以有多个玩家 len(players)。

我希望它每次都能不断提示不同的玩家采取行动。因此,例如,如果有 3 个玩家 ABC,如果轮到玩家 A,我希望下一个玩家是玩家 B,然后下一个玩家是 C,然后循环回到玩家 A。

如果可能,仅使用 while 循环、if 语句和布尔值。

玩家 = 'ABCD'

def next_gamer(gamer):
    count = 0
    while count < len(GAMERS):
    if gamer == GAMERS[0]:
          return GAMERS[count + 1]
    if gamer == GAMERS[-1]
          return GAMER[0]
    count = count + 1
4

3 回答 3

2

如果您不能使用 .index() 方法,我认为您正在尝试做的是:

    def next_gamer(gamer):
        count = 0
        while count < len(GAMERS):
            if gamer == GAMERS[count]:
                return GAMERS[count + 1]
            count = count + 1
        return GAMERS[0]
于 2013-06-12T23:26:40.517 回答
0

你可以让你的函数返回你列表 GAMES 中的下一个玩家,使用一个简单的语句,不管你当前在游戏中是哪个玩家,它都可以工作:

返回 GAMES[GAMERS.index(gamer)+1]

除非当前玩家是列表中的最后一个,您可以使用以下 if 语句进行测试:

如果 GAMES.index(gamer) == len(GAMERS) - 1:

返回 GAMES[0]

在这种情况下,您会返回第一个玩家。

于 2013-06-12T23:12:30.870 回答
0

我对您之前的问题的解决方案,涉及生成器:

turn=0
def gameIsFinished():
    global turn
    turn = turn+1
    return turn >10

def cycle(iterable):
    while True:
        for item in iterable:
            if gameIsFinished():
                return
            yield item

for player in cycle([1,2,3]):
    print player
于 2013-06-12T23:03:37.147 回答