一、明确项目目标
二、分析过程,拆解项目
三、逐步执行,代码实现
3.1 版本1.0:自定属性,人工pk
3.2 版本2.0:随机属性,自动pk
3.3 版本3.0:打印战果,三局两胜
考察知识点:条件判断、循环、格式化字符串
一、明确项目目标
这个游戏中,会随机生成玩家和敌人的属性,同时互相攻击,直至一方血量小于零。这样的战斗会持续三局,采取三局两胜制,最后输出战斗结果,公布获胜方。效果示意图res.pandateacher.com
二、分析过程、拆解项目
三、逐步执行,代码实现
3.1 版本1.0:自定属性,人工pk
主要有三步:1.规定并显示出玩家和敌人的属性 2.双方同时互相攻击,血量根据对方的攻击力扣除 3.若有一方血量小于等于0,游戏结束。3.2 版本2.0:随机属性,自动pk
第1步:设定【玩家】和【敌人】的属性,即【血量】和【攻击】。
print('【玩家】血量:100 攻击:50') # 自定义玩家角色的血量和攻击
print('【敌人】血量:100 攻击:30') # 自定义敌人角色的血量和攻击
第2步:手动计算攻击一次,双方各自所剩的血量。
print('你发起了攻击,【敌人】剩余血量50') # 人工计算敌人血量:100-50=50
print('敌人向你发起了攻击,【玩家】剩余血量70') # 人工计算玩家血量:100-30=70
第3步:继续做人工计算:算一算,玩家攻击2次敌人,敌人的血量就等于0了,这时候可以结束战斗,打印游戏结果。
print('你发起了攻击,【敌人】剩余血量0') # 双方同时攻击,若血量出现小于等于0,游戏结束
print('敌人向你发起了攻击,【玩家】剩余血量40')
print('敌人死翘翘了,你赢了!') # 打印结果
代码优化:三段代码拼接,加一些修饰视觉的换行符和分割线,优化视觉效果
print('【玩家】\n血量:100\n攻击:50') # 自定义玩家角色的血量和攻击,用换行符'\n'来优化视觉
print('------------------------') # 辅助功能,起到视觉分割的作用,让代码的运行结果更清晰
print('【敌人】\n血量:100\n攻击:30')
print('------------------------')
print('你发起了攻击,【敌人】剩余血量50') # 人工计算敌人血量:100-50=50
print('敌人向你发起了攻击,【玩家】剩余血量70') # 人工计算玩家血量:100-30=70
print('------------------------')
print('你发起了攻击,【敌人】剩余血量0') # 双方同时攻击,若血量出现小于等于0,游戏结束
print('敌人向你发起了攻击,【玩家】剩余血量40')
print('-----------------------')
print('敌人死翘翘了,你赢了!') # 打印结果
运行结果:
【玩家】
血量:100
攻击:50
------------------------
【敌人】
血量:100
攻击:30
------------------------
你发起了攻击,【敌人】剩余血量50
敌人向你发起了攻击,【玩家】剩余血量70
------------------------
你发起了攻击,【敌人】剩余血量0
敌人向你发起了攻击,【玩家】剩余血量40
-----------------------
敌人死翘翘了,你赢了!
代码进一步优化:所有信息一下子都蹦跶出来,一点都没有体现游戏的进程感。为了让打印出的东西能有时间间隔地依次出现,我们需要设置一个类似“计时器”的东西。在Python里,我们需要用到两行代码来实现:
import time #调用time模块
time.sleep(secs)
#使用time模块下面的sleep()函数,括号里填的是间隔的秒数(seconds,简称secs)
#time.sleep(1.5)就表示停留1.5秒再运行后续代码
优化后的代码&#