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

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

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)_第4张图片
首先我们来看,三局战斗也是一个可以循环的结构,且循环次数是固定的,所以要用到for循环。
第7关:小游戏大学问(2)_第5张图片
现在,你有思路了吗?尝试把代码打出来吧,让战斗循环三局。(先不用统计最后的结果)
给两个提示:1.想清楚哪些代码要嵌套到for循环里,即一局战斗里包括什么信息。确定了for写在哪里之后,一句战斗包含的所有信息都要缩进;2.细节也需要留意,如局与局之间要怎么区分开来(时间间隔&打印局数信息)
第7关:小游戏大学问(2)_第6张图片

import time,random
for i in range(1,4):
    time.sleep(1.5)  # 让局与局之间有较明显的有时间间隔
    print(' \n——————现在是第'+str(i)+'局,ready go!——————')  # 作为局的标记
    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)

第7关:小游戏大学问(2)_第7张图片
第7关:小游戏大学问(2)_第8张图片
第7关:小游戏大学问(2)_第9张图片
第7关:小游戏大学问(2)_第10张图片
第7关:小游戏大学问(2)_第11张图片
第7关:小游戏大学问(2)_第12张图片
第7关:小游戏大学问(2)_第13张图片
第7关:小游戏大学问(2)_第14张图片
第7关:小游戏大学问(2)_第15张图片
所以老师的答案是这样子的,需要注意的是最终判断结果要放在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)_第16张图片
第7关:小游戏大学问(2)_第17张图片
第7关:小游戏大学问(2)_第18张图片
在这里插入图片描述
第7关:小游戏大学问(2)_第19张图片
第7关:小游戏大学问(2)_第20张图片
在这里插入图片描述
第7关:小游戏大学问(2)_第21张图片
在这里插入图片描述
第7关:小游戏大学问(2)_第22张图片
第7关:小游戏大学问(2)_第23张图片
在这里插入图片描述

import time
import random

player_victory = 0
enemy_victory = 0

for i in range(1,4):
    time.sleep(1.5)
    print('  \n——————现在是第 %s 局——————' % i)
    #对比之前:(' \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血量:%s\n攻击:%s' % (player_life,player_attack))
    print('------------------------')
    time.sleep(1)
    print('【敌人】\n血量:%s\n攻击:%s' % (enemy_life,enemy_attack))
    print('-----------------------')
    time.sleep(1)

    while player_life > 0 and enemy_life > 0:
        player_life = player_life - enemy_attack 
        enemy_life = enemy_life - player_attack
        print('你发起了攻击,【玩家】剩余血量%s' % player_life)
        print('敌人向你发起了攻击,【敌人】的血量剩余%s' % enemy_life)
        print('-----------------------')
        time.sleep(1.2)

    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('\n【最终结果:你赢了!】')
elif enemy_victory > player_victory:
    print('\n【最终结果:你输了!】')
else: 
    print('\n【最终结果:平局!】')

第7关:小游戏大学问(2)_第24张图片
第7关:小游戏大学问(2)_第25张图片

你可能感兴趣的:(风变编程)