Python 如何创建从最后一个播放器循环回第一个播放器的函数?
这就是我目前得到的。这个游戏可以有多个玩家,最多可以有个玩家 我希望每次都能不断地提醒不同的玩家采取行动。 例如,如果有3个玩家A B C,如果是玩家A回合,我希望下一个玩家是玩家B,然后下一个玩家是C,然后循环回玩家A 如果可能,仅使用while循环、if语句和布尔值 玩家='ABCD'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]:
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循环来计算