Python竞速游戏数值归0时未终止问题排查求助
双角色竞速游戏终止逻辑修复
问题描述
开发的双角色竞速游戏中,通过随机数值模拟猎豹(Cheetah)和兔子(Rabbit)的进度,但角色数值归0时游戏并未终止,甚至会变成负数。调整if Cheetah and Rabbit == 0的判断逻辑后仍未解决问题。
原代码如下:
import time import random Cheetah = 222 Rabbit = 222 for i in range(222): a = random.randint(4, 10) if Cheetah == 0: print("Cheetah Wins!") break if a == 4: Cheetah = Cheetah - 4 print(Cheetah, "Cheetah") elif a == 5: Cheetah = Cheetah - 5 print(Cheetah, "Cheetah") elif a == 6: Cheetah = Cheetah - 6 print(Cheetah, "Cheetah") elif a == 7: Cheetah = Cheetah - 7 print(Cheetah, "Cheetah") elif a == 8: Cheetah = Cheetah - 8 print(Cheetah, "Cheetah") elif a == 9: Cheetah = Cheetah - 9 print(Cheetah, "Cheetah") elif a == 10: Cheetah = Cheetah - 10 print(Cheetah, "Cheetah") b = random.randint(3, 10) if Rabbit == 0: print("Rabbit Wins") break if b == 3: Rabbit = Rabbit - 3 print(Rabbit, "Rabbit") elif b == 4: Rabbit = Rabbit - 4 print(Rabbit, "Rabbit") elif b == 5: Rabbit = Rabbit - 5 print(Rabbit, "Rabbit") elif b == 6: Rabbit = Rabbit - 6 print(Rabbit, "Rabbit") elif b == 7: Rabbit = Rabbit - 7 print(Rabbit, "Rabbit") elif b == 8: Rabbit = Rabbit - 8 print(Rabbit, "Rabbit") elif b == 9: Rabbit = Rabbit - 9 print(Rabbit, "Rabbit") elif b == 10: Rabbit = Rabbit - 10 print(Rabbit, "Rabbit")
问题根源
- 判断时机错误:原代码在扣减数值前检查是否为0,但扣减后数值才会降到0或负数,此时不会触发胜利判断,要等下一次循环才会检查,导致数值继续被扣成负数。
- 未处理超量扣减:当剩余数值小于随机扣减值时,直接相减会变成负数,没有限制为0,也不会触发胜利。
- 代码冗余:逐个判断随机数的写法完全没必要,直接用随机数扣减数值即可。
修复后的代码
import random cheetah = 222 rabbit = 222 while True: # 猎豹回合 step = random.randint(4, 10) cheetah -= step if cheetah <= 0: cheetah = 0 print(f"{cheetah} Cheetah") print("Cheetah Wins!") break print(f"{cheetah} Cheetah") # 兔子回合 step = random.randint(3, 10) rabbit -= step if rabbit <= 0: rabbit = 0 print(f"{rabbit} Rabbit") print("Rabbit Wins!") break print(f"{rabbit} Rabbit")
修复说明
- 更换循环类型:把固定次数的
for循环换成while True,直到有一方胜利才终止,避免循环次数限制导致的问题。 - 调整判断逻辑:扣减数值后立即检查是否≤0,直接将数值设为0并触发胜利,终止游戏。
- 简化代码结构:去掉冗余的
elif判断,直接用随机生成的步数扣减数值,代码更简洁易读。 - 规范变量命名:遵循Python小写字母加下划线的命名规范,提升代码可读性。
内容的提问来源于stack exchange,提问作者Playersplayer
相关产品推荐
相关产品推荐

