第7关:小游戏大学问(2)

版本3.0:打印战果,三局两胜
第7关:小游戏大学问(2)
第7关:小游戏大学问(2)
第7关:小游戏大学问(2)

import time,random

# 生成双方角色,并生成随机属性。
player_life = random.randint(100,150)
player_attack = random.randint(30,50)
enemy_life = random.randint(100,150)
enemy_attack = random.randint(30,50)

# 展示双方角色的属性
print('【玩家】\n'+'血量:'+str(player_life)+'\n攻击:'+str(player_attack))
print('------------------------')
time.sleep(1)
print('【敌人】\n'+'血量:'+str(enemy_life)+'\n攻击:'+str(enemy_attack))
print('------------------------')
time.sleep(1)

# 双方PK
while player_life > 0 and enemy_life > 0:
    player_life = player_life - enemy_attack
    enemy_life = enemy_life - player_attack
    print('你发起了攻击,【玩家】剩余血量'+str(player_life))
    print('敌人向你发起了攻击,【敌人】剩余血量'+str(enemy_life))
    print('-----------------------')
    time.sleep(1.5)

# 打印战果
if player_life > 0 and enemy_life <= 0:
    print('敌人死翘翘了,你赢了')
elif player_life <= 0 and enemy_life > 0:
    print('悲催,敌人把你干掉了!')
else:
    print('哎呀,你和敌人同归于尽了!')

好啦,我们继续前进。版本3.0也只剩最后的“三局两胜”了,准备好迎接最后的挑战了吗?
第7关:小游戏大学问(2)
首先我们来看,三局战斗也是一个可以循环的结构,且循环次数是固定的,所以要用到for循环。
第7关:小游戏大学问(2)
现在,你有思路了吗?尝试把代码打出来吧,让战斗循环三局。(先不用统计最后的结果)
给两个提示:1.想清楚哪些代码要嵌套到for循环里,即一局战斗里包括什么信息。确定了for写在哪里之后,一句战斗包含的所有信息都要缩进;2.细节也需要留意,如局与局之间要怎么区分开来(时间间隔&打印局数信息)
第7关:小游戏大学问(2)


1
import time,random
2
​
3
for i in range(1,4):
4
    time.sleep(1.5)  # 让局与局之间有较明显的有时间间隔
5
    print(' \n——————现在是第'+str(i)+'局,ready go!——————')  # 作为局的标记
6
 
7
    player_life = random.randint(100,150)
8
    player_attack = random.randint(30,50)
9
    enemy_life = random.randint(100,150)
10
    enemy_attack = random.randint(30,50)
11
​
12
    # 展示双方角色的属性
13
    print('【玩家】\n'+'血量:'+str(player_life)+'\n攻击:'+str(player_attack))
14
    print('------------------------')
15
    time.sleep(1)
16
    print('【敌人】\n'+'血量:'+str(enemy_life)+'\n攻击:'+str(enemy_attack))
17
    print('------------------------')
18
    time.sleep(1)

第7关:小游戏大学问(2)
第7关:小游戏大学问(2)
第7关:小游戏大学问(2)
第7关:小游戏大学问(2)
第7关:小游戏大学问(2)
第7关:小游戏大学问(2)
第7关:小游戏大学问(2)
第7关:小游戏大学问(2)
第7关:小游戏大学问(2)
所以老师的答案是这样子的,需要注意的是最终判断结果要放在for循环外面,也就是不用缩进。

import time,random

player_victory = 0
enemy_victory = 0

for i in range(1,4):
    time.sleep(2)  # 让局与局之间有较明显的有时间间隔
    print(' \n——————现在是第'+str(i)+'局——————')  # 作为局的标记
 
    player_life = random.randint(100,150)
    player_attack = random.randint(30,50)
    enemy_life = random.randint(100,150)
    enemy_attack = random.randint(30,50)

    # 展示双方角色的属性
    print('【玩家】\n'+'血量:'+str(player_life)+'\n攻击:'+str(player_attack))
    print('------------------------')
    time.sleep(1)
    print('【敌人】\n'+'血量:'+str(enemy_life)+'\n攻击:'+str(enemy_attack))
    print('------------------------')
    time.sleep(1)

    # 双方PK
    while player_life > 0 and enemy_life > 0:
        player_life = player_life - enemy_attack
        enemy_life = enemy_life - player_attack
        print('你发起了攻击,【玩家】剩余血量'+str(player_life))
        print('敌人向你发起了攻击,【敌人】剩余血量'+str(enemy_life))
        print('-----------------------')
        time.sleep(1.5)

    #打印最终战果
    if player_life > 0 and enemy_life <= 0:
        player_victory += 1
        print('敌人死翘翘了,你赢了!')
    elif player_life <= 0 and enemy_life > 0:
        enemy_victory += 1
        print('悲催,敌人把你干掉了!')
    else:
        print('哎呀,你和敌人同归于尽了!')

if player_victory > enemy_victory :
    time.sleep(1)
    print('【最终结果:你赢了!】')
elif enemy_victory > player_victory:
    print('【最终结果:你输了!】')
else: 
    print('【最终结果:平局!】')

第7关:小游戏大学问(2)
第7关:小游戏大学问(2)
第7关:小游戏大学问(2)
第7关:小游戏大学问(2)

第7关:小游戏大学问(2)第7关:小游戏大学问(2) 痴宝琛这 发布了15 篇原创文章 · 获赞 0 · 访问量 389 私信 关注
上一篇:poj 2492 A Bug's Life(种类并查集)


下一篇:[leetcode]Game of Life