Python 3.x Python 3:如何在不停止函数的情况下退出循环
我是一个完全的新手,在过去的5个小时里,我一直在尝试解决这个问题(用我自己的头脑和在线研究) 下面是我们为模拟游戏而编写的函数的一个片段。我们想提供一个开始新一轮的机会-这意味着如果一个玩家点击“b”,游戏应该在范围的开始(0,玩家)重新开始。但现在它只是进入范围内的下一个玩家(如果玩家1进入“b”,程序调用玩家2) 我试过回击和断球,也试过把它放在另一个while循环中。。。失败。Break和return刚刚结束了函数。Python 3.x Python 3:如何在不停止函数的情况下退出循环,python-3.x,Python 3.x,我是一个完全的新手,在过去的5个小时里,我一直在尝试解决这个问题(用我自己的头脑和在线研究) 下面是我们为模拟游戏而编写的函数的一个片段。我们想提供一个开始新一轮的机会-这意味着如果一个玩家点击“b”,游戏应该在范围的开始(0,玩家)重新开始。但现在它只是进入范围内的下一个玩家(如果玩家1进入“b”,程序调用玩家2) 我试过回击和断球,也试过把它放在另一个while循环中。。。失败。Break和return刚刚结束了函数。 任何提示都非常感谢 您可以将for循环更改为while循环。不要使用范围
任何提示都非常感谢 您可以将
for
循环更改为while
循环。不要使用范围
,而是将播放器
设为计数器
players = 4
if 3 <= players < 9:
player = 0 # here's where you make your counter
while player < players:
sum_points = 0
throw_per_player_counter = 0
print("\nIt is player no.", player+1, "'s turn!\n")
print("\nPress 'return' to roll the dice.\n"
"To start a new round press 'b'.\n"
"Player", player+1)
roll_dice = input(">>> ")
player += 1 # increment it
if roll_dice == "b":
player = 0 # now your reset should work
throw_per_player_counter = 0
sum_points = 0
print("\n * A new round was started. * \n")
players=4
如果3>”)
玩家+=1#增加它
如果掷骰子=“b”:
player=0#现在您的重置应该可以工作了
每名玩家掷骰次数=0
总和=0
打印(“\n*新一轮已开始。*\n”)
谢谢!这确实有助于打破循环!一些测试用例的总分数失败了(显然这是不应该的加倍分数))我注意到这里有很多player+1
,这很容易成为错误和计算错误的原因。变量并不代表实际值。因为player
代表一个以1
开头的玩家号,所以可能值得重新计算-写入以使player
变量一致地反映其实际值。player=1
,而player
players = 4
if 3 <= players < 9:
player = 0 # here's where you make your counter
while player < players:
sum_points = 0
throw_per_player_counter = 0
print("\nIt is player no.", player+1, "'s turn!\n")
print("\nPress 'return' to roll the dice.\n"
"To start a new round press 'b'.\n"
"Player", player+1)
roll_dice = input(">>> ")
player += 1 # increment it
if roll_dice == "b":
player = 0 # now your reset should work
throw_per_player_counter = 0
sum_points = 0
print("\n * A new round was started. * \n")