如何创建一个从最后一个玩家循环回第一个玩家的功能?

时间:2013-06-12 23:00:42

标签: python while-loop

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

我希望每次都能不断提醒不同的玩家。 所以,例如,如果有3个玩家A B C,如果是玩家A转,我希望下一个玩家是玩家B,然后下一个玩家是C,然后循环回玩家A.

仅使用while循环,if语句和布尔值。

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

3 个答案:

答案 0 :(得分: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]

答案 1 :(得分: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

答案 2 :(得分:0)

你可以让你的函数使用一个简单的语句返回你的列表GAMERS中的下一个游戏玩家,无论你当前在游戏中玩哪个玩家都可以使用它:

  

返回GAMERS [GAMERS.index(游戏玩家)+1]

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

  

如果GAMERS.index(游戏玩家)== len(游戏玩家) - 1:

     
    

返回GAMERS [0]

  

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