Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何创建从最后一个播放器循环回第一个播放器的函数?_Python_While Loop - Fatal编程技术网

Python 如何创建从最后一个播放器循环回第一个播放器的函数?

Python 如何创建从最后一个播放器循环回第一个播放器的函数?,python,while-loop,Python,While Loop,这就是我目前得到的。这个游戏可以有多个玩家,最多可以有个玩家 我希望每次都能不断地提醒不同的玩家采取行动。 例如,如果有3个玩家A B C,如果是玩家A回合,我希望下一个玩家是玩家B,然后下一个玩家是C,然后循环回玩家A 如果可能,仅使用while循环、if语句和布尔值 玩家='ABCD' def next_gamer(gamer): count = 0 while count < len(GAMERS): if gamer == GAMERS[0]:

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

我希望每次都能不断地提醒不同的玩家采取行动。 例如,如果有3个玩家A B C,如果是玩家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
def next_玩家(玩家):
计数=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

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

返回玩家[玩家索引(玩家)+1]

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

如果玩家索引(玩家)=len(玩家)-1:

返回玩家[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]
def next_玩家(玩家):
计数=0
当计数
您能更准确地说明您想要实现的目标吗?您的代码中似乎有一个小的格式错误,可能只是因为粘贴了它。您可能需要编辑它,并缩进if和“count=count+1”,以便它们进入您的while循环,只是为了清晰。感谢您的帮助!然而,在我的游戏中,除了while循环、if语句和布尔语句外,我不允许使用任何东西。您可以使用while循环复制结果吗?注意:我想您希望while循环位于函数“next_gamer()”之外。一旦你的函数返回了一些东西,它就会退出函数,从而退出while循环。谢谢你的帮助。然而,我的游戏仅限于使用while循环、boolean和if语句。没有方法你怎么办?那可不好玩!然后,您不需要while循环,就像有玩家一样多的if语句。或者你把玩家储存成字典?你应该重新定义你的问题。玩家的数量可以改变,因此需要一个while循环来计算