上一节:
<>  上一节我们学了类的基本使用,为了巩固学习,今天继续使用 类 来编程。 #   好好学习,天天打卡   # 

 今天我们要研究的是“奥特曼打小怪兽”

游戏策划 不要觉得没有用

  #   题目   #  

        写出一个“奥特曼”和“小怪兽”类,基本属性有名字、生命值和魔法值。来实现“奥特曼”打“小怪兽”。

        基本玩法是,奥特曼先攻击,小怪兽只能反击;奥特曼可以使用普通攻击、魔法攻击和必杀技三种攻击方式,小怪兽只能使用普通攻击。奥特曼使用魔法攻击,扣40魔法值,每次普通攻击后恢复魔法值。

        基本玩法满足后,测试一下“奥特曼”的胜率

思路分析  要怎么打呢

  #   分析   #  

        先设计出两个类,然后再用死循环进行互相攻击,直到其中一个血条为0,宣布游戏结果。

        “奥特曼”类,需要普通攻击、魔法攻击、必杀技、魔法恢复、显示这些类方法。出什么方法可以用随机函数,生成1-10,随机按概率使用攻击技能。“小怪兽”类稍微简单,只要普通攻击、显示两个类方法。

        想好基本的思路,和往常一样,列出思路来。

  #   思路   #  

奥特曼类

普通攻击:

        伤害值范围在15-25点之间。

        每次攻击恢复魔法值范围1-10点。

魔法攻击:

        伤害值范围在20-30点之间。

        使用一次魔法攻击扣40点魔法值。

必杀技:

        伤害值:取小怪兽当前生命值的3/4,

        每次攻击自身扣50点。

恢复:

        每次普通攻击后恢复1-10点魔法值

小怪兽类

普通攻击:

        伤害值范围在10-20点之间。

游戏主程序

用简单的while语句控制死循环,If语句控制基本流程。

开始编码  一步一步来

  #   写好注释   #  

根据之前所分析的,写好注释。写注释的目的,一方面是为了让自己思路清晰,知道下一步要干嘛,另外就是保持初心,因为代码写着写着,你就忘记了开头是怎样策划的。

所以为了保持初心,写注释很重要

写好注释后,我们开始根据注释编写类

  #   奥特曼类   #  

1、定义一个奥特曼类,它包含基本的名字、生命值和魔法值:

游戏中一般都是用HP表示生命值,MP表示魔法值

2、根据注释写出attack()普通攻击。

attack函数,需要传入攻击的对象为参数,所以这里括号里面的ms就代表小怪兽。攻击一次,就将ms的hp扣去一个随机数。这里使用了randint函数,就是随机函数,所以需要在代码的最开头加入一行代码,

这里的print()函数使用了%s代表字符串,%d代表数字,他们的值在后面%()里面对应起来,这是print的新用法。

攻击完,调用resume函数,恢复魔法值,这个函数后面再写。

3、根据注释写出magic()魔法攻击,

需要判断魔法值够不够使用,一次扣40所以要判断魔法值有没有大于40,没大于40就转成普通攻击。

4、根据注释写出super()必杀技

需要判断生命值够不够使用,一次扣50所以要判断生命值有没有大于50,没大于40就转成普通攻击。大于50的话,自己先扣50(杀敌自损),然后扣去怪兽当前生命值的四分之三。

5、根据注释写出resume()恢复魔法

需要判断魔法值有没有超过90,避免魔法值恢复后大于100。

6、根据注释写出display()显示基本信息

这里模拟一个血量条,清晰直观看出数据,不多说。

  #   奥特曼类   #  

1、定义一个奥特曼类,它包含基本的名字、生命值和魔法值:

2、根据注释写出attack()普通攻击。

3、根据注释写出display()显示基本信息

  #   主程序   #  

1、实例化 奥特曼和怪兽

奥特曼对象括号里面三个值,分别指名字、生命值和魔法值,怪兽括号里面是名字和生命值。因为奥特曼技能过多,伤害略高,太过酷炫,所以为了小怪兽被打的太可怜,这里多给小怪兽一些血量,毕竟只能挨打反击。

2、游戏开始,向对手致敬

定义一个变量times用来保存回合数,然后开始挨打。进入循环的条件是,奥特曼的血量或者小怪兽的血量大于0,说明他们两个没有一个死翘翘,就一直打下去。

3、奥特曼开始秀技能

这里用1-10的随机数来控制技能概率,普通攻击概率60%,魔法攻击概率30%,必杀技概率10%。可怜的小怪兽要被打了。

4、轮到怪兽反击

只要它的血量大于0,说明它还活着,活着就得勇敢地去战斗!接招吧,奥特曼!

小怪兽反击完后,显示它们两个各自的基本信息,然后游戏回合数加1。

5、判断输赢

#    开打开打!   # 

可怜的小怪兽一开始就被奥特曼用必杀技扣了112点血量,三回合倒下。

战况激烈,

小怪兽说:“只要你不用必杀技,我就是大爷!”

奥特曼说:“虐菜、不用必杀技我也能打赢你!”

为了验证它们到底谁厉害。

我改了下代码

让他们大战300回合。

代码修改以上几处。就可以开始自动测试300次,统计出输赢次数。

测试结果如下:

看来还是小怪兽厉害一点,

毕竟皮厚一点。

python完整代码

 ↓ ↓ ↓    加入我们,一起学习吧   ↓ ↓ ↓

我就知道你“在看”

技术
下载桌面版
GitHub
Gitee
SourceForge
百度网盘(提取码:draw)
云服务器优惠
华为云优惠券
腾讯云优惠券
阿里云优惠券
Vultr优惠券
站点信息
问题反馈
邮箱:[email protected]
吐槽一下
QQ群:766591547
关注微信