我正在自学Python,我正在尝试使用我熟悉的RPG机制制作一个基本的游戏。我的核心技工看起来是这样的:
while not GameOver(): #checking for one side or the other to be all KO'd
turnbegin() #resetting # of moves per player, etc
while not TurnDone(): #checking to see if everyone's out of moves
for ch in activechars: #going through the players who still have moves
if ch not in defeatedchars: #ignoring the KO'd players
attack(ch,target(ch)) #EVERYONE PUNCH EVERYONE (keeping it simple)
else:
pass我的问题是,这个循环在点击GameOver()之后仍然试图运行目标(Ch)函数。计数器已关闭(每个人的KO'd),GameOver函数似乎工作正常;我检查了。但是GameOver返回True,而then...it只是继续进行攻击(),并返回一个错误,即它没有任何人可以针对,而不是因为它已经结束而停止了。我试着创建一个gameover=GameOver()变量,然后用“但不是gameover”来代替,但是在它说开始第2轮之后,它就被卡在了turn ()中。
谢谢你看了这个!我对此非常陌生,非常感谢你的帮助。
发布于 2022-03-07 15:12:50
“虽然不是GameOver()”只有在它完成运行并需要进入另一个循环时才会被计算。
因为TurnDone()仍然是真的,所以它不会退出循环,并且GameOver()不会被重新计算。
当GameOver()被更新为True时,TurnDone()也应该变成True,以防止它进入另一个循环。
https://stackoverflow.com/questions/71383135
复制相似问题