如何创建一个循环函数,使其从最后一个玩家回到第一个玩家?

2024-06-08 19:01:26 发布

您现在位置:Python中文网/ 问答频道 /正文

这就是我目前得到的。这个游戏最多可以有多个玩家。你知道吗

我希望每次都能不断地提醒不同的球员采取行动。 例如,如果有3个玩家A B C,如果是玩家A,我希望下一个玩家是玩家B,然后下一个玩家是C,然后循环回到玩家A

只使用while循环,if语句,如果可能的话使用booleans。你知道吗

PLAYERS='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

Tags: 游戏returnifdefcount玩家语句球员
3条回答

我对你先前问题的解决方案,涉及发电机:

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

您只需让函数返回列表中的下一个玩家—玩家—使用下面这样的简单语句即可,无论您当前在游戏中的玩家是谁:

return GAMERS[GAMERS.index(gamer)+1]

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

if GAMERS.index(gamer) == len(GAMERS) - 1:

return GAMERS[0]

在这种情况下,返回第一个玩家。你知道吗

如果你不能使用.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]

相关问题 更多 >