Python蛇水枪游戏输入y后run函数不执行是什么原因
故障原因
你遇到的问题是全局变量未重置导致的:
- 第一次执行
run()函数时,循环每执行一次,chance变量就会自增1,10轮游戏全部跑完后,chance的值已经变成了11 - 当你输入
y第二次调用run()时,while chance > 0 and chance <= 10的判断条件直接不成立,循环完全不会执行,所以看起来就像run()函数没有运行。
修复方案
修改run()函数,在进入循环前先重置所有游戏状态全局变量即可:
def run(): global choices, chance, player_p, comp_p, counter # 新增:每次启动游戏先重置状态 chance = 1 counter = 10 player_p = 0 comp_p = 0 while chance > 0 and chance <= 10: # 其余原有逻辑保持不变
如果需要第二轮游戏结束后也正常触发胜负判定、支持多次重开,可以把胜负结果打印、winner()调用、run_again()调用都移动到run()函数的末尾即可。
内容的提问来源于stack exchange,提问作者Shreyash Kashyap
相关产品推荐
相关产品推荐

