鱼C论坛

 找回密码
 立即注册
查看: 3662|回复: 7

[已解决]Help! 三局两胜制,三局都是玩家赢,最后判敌人赢是什么鬼,求纠错QAQ

[复制链接]
发表于 2023-2-16 09:06:11 | 显示全部楼层
我执行没有问题,你把你出问题的那个执行结果放上来看看

玩家血量:174;敌人血量:120。
-------------------------------
这是第1局游戏
玩家血量:137;敌人血量:80。
玩家赢了(血量:137)
-------------------------------
这是第2局游戏
玩家血量:102;敌人血量:40。
玩家赢了(血量:102)
-------------------------------
这是第3局游戏
玩家血量:60;敌人血量:1。
玩家赢了(血量:60)
-------------------------------
最终结果:玩家赢了
-------------------------------
是否再来一局?请回答是or否
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 0 反对 1

使用道具 举报

发表于 2023-2-16 09:30:11 | 显示全部楼层    本楼为最佳答案   
本帖最后由 isdkz 于 2023-2-16 09:33 编辑

计分应该是放在 for 循环的外面,while 循环的里面,不然每次都在 for 循环里被重置为 0,

它应该在 while 循环重置才对


  1. import time,random

  2. while True:    #不确定次数的循环
  3.     player_life = random.randint(100,150)
  4.     enemy_life = random.randint(100,150)
  5.    
  6.     player_victory = 0   #空白计分板                        这个应该放在 for 循环的外面
  7.     enemy_victory = 0
  8.    
  9.     print('玩家血量:%s;敌人血量:%s。'%(player_life,enemy_life))
  10.     print('-------------------------------')
  11.     time.sleep(1.5)

  12.     for i in range(3):

  13.         player_attack = random.randint(30,50)  #玩家攻击力每次都是随机的
  14.         enemy_attack = random.randint(30,50)

  15.         print('这是第%s局游戏'%(i+1))
  16.         player_life = player_life - enemy_attack
  17.         enemy_life = enemy_life - player_attack
  18.         print('玩家血量:%s;敌人血量:%s。'%(player_life,enemy_life))
  19.    


  20.         if  player_life > 0 and enemy_life < player_life:    #玩家大于敌人血量视为赢
  21.             player_victory += 1
  22.             print('玩家赢了(血量:%s)'%player_life)
  23.         elif enemy_life > 0  and player_life < enemy_life:    #敌人大于玩家血量视为赢
  24.             print('敌人赢了(血量:%s)'%enemy_life)
  25.             enemy_victory += 1
  26.         else:
  27.             print('同归于尽')
  28.         print('-------------------------------')
  29.         time.sleep(1.5)

  30.     if player_victory > enemy_victory:
  31.         print('最终结果:玩家赢了')
  32.     elif player_victory == enemy_victory:
  33.         print('最终结果:平局')
  34.     else:
  35.         print('最终结果:敌人赢了')
  36.     print('-------------------------------')
  37.     time.sleep(1.5)   

  38.     again = input('是否再来一局?请回答是or否')
  39.     if again == '是':
  40.         continue
  41.     else:
  42.         break
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-10-17 03:09

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表