Python新手经典案例之奥特曼打怪兽-lol版
本人新人入门Python 老师布置的作业打怪兽,本人参考了大佬们的杰作然后完成了下方的适合新手入门的版本,与大家分享!
第一步:新建Python包,创建文件
注意:需要有_init_.py这个py文件,里面可以为空,但是一定要有。
第二步:写个简单的武器商店Equipment.py
不多说,直接上代码。因为比较基础,也没啥好讲的。都是最基础的。
# EquipmentStore 装备商店 name 名字 attack 攻击 damage伤害 defensive 防御
# attackSpeed 攻速 movingSpeed移速 price价格 EquipmentAttribute的装备属性class Equipment_Attribute:def __init__(self, name, attack, defensive, attackSpeed, movingSpeed, price): self.price = priceself.movingSpeed = movingSpeedself.attackSpeed = attackSpeedself.defensive = defensiveself.attack = attackself.name = name# def show(self):# print("%s 攻击:%s 防御:%s 攻速:%s 移速:%s 价格:%s" % (# self.name, self.attack, self.defensive, # self.attackSpeed, self.movingSpeed, self.price))s1 = Equipment_Attribute("攻速鞋", 0, 0, 0.35, 45, 1100)
s2 = Equipment_Attribute("布甲鞋", 0, 20, 0, 45, 1100)
s3 = Equipment_Attribute("短剑", 10, 0, 0, 0, 350)
第三步:写英雄部分内容,Hero.py
import time
import random
import LOL.Equipmentclass YaSuo:def __init__(self, Name, HP, MP, Attack):self.Name = Nameself.HP = HPself.MP = MPself.Attack = Attackdef LinesYS(self): # 亚索的台词say = random.randint(0, 9)taici = ['死亡如风,常伴吾身。','长路漫漫,唯剑作伴。','吾之荣耀,离别已久。','明日安在,无人能允。','且随疾风前行,身后亦须留心。','此剑之势,愈斩愈烈。','仁义道德,也是一种奢侈。','回首往昔,更进一步。','我将遵循此道,直至终结。','荣耀存于心,而非流于形。']print("疾风剑豪--亚索: "+taici[say])# 增加Attack:伤害 as 攻击力def Add_Attack(self):s3 = LOL.Equipment.s3if s3.name:print(f"{self.Name}已成功购买一柄短剑")self.Attack += s3.attackdef PuTong_Attack(self): # 普通攻击方法print(f"{self.Name}平A!")self.Add_Attack()return self.Attackdef SkillQ(self):print(f"{self.Name}释放技能Q:斩钢闪 --哈塞给--")time.sleep(1)print(f"{self.Name}技能Q:斩钢闪-->命中")print(f"{self.Name}对{xz.Name}造成{self.Attack * 2}的HP伤害")return self.Attack * 2def SkillR(self):print(f"{self.Name}释放技能R:狂风绝息斩")time.sleep(1)print(f"{self.Name} --索雷阿给动--")print(f"{self.Name}对{xz.Name}造成{self.Attack * 4}的HP伤害")return self.Attack * 4def __str__(self): # 内置魔法方法,输出对象时输出bar_length = 20h = '#' * int(self.HP / 100.0 * bar_length)s = '-' * (bar_length - len(h))h2 = '#' * int(self.MP / 100.0 * bar_length)s2 = '-' * (bar_length - len(h2))return "%s HP: [%s] %d %s MP: [%s] %d" % (self.Name, h + s, self.HP, self.Name, h2 + s2, self.MP)class LiQing:def __init__(self, Name, HP, MP, Attack):self.Name = Nameself.HP = HPself.MP = MPself.Attack = Attackdef LinesMS(self): # 盲僧的台词say = random.randint(0, 9)taici = ['控制自己,掌控敌人。','你今天不会取得胜利的。','我用双手成就你的梦想。','如果暴力不是为了杀戮 那将毫无意义。','双眼失明丝毫不影响我追捕敌人,因为我能闻到他们身上的臭味 。','哪里需要我呢。','他们心跳加快。','我会识破这一切。','找到自己的战场。','勇往直前。']print("盲僧——李青: "+taici[say])def Add_Attack(self):s3 = LOL.Equipment.s3if s3.name:print(f"{self.Name}已成功购买一柄短剑")self.Attack += s3.attackdef PuTong_Attack(self): # 普通攻击方法print(f"{self.Name}平A!")self.Add_Attack()print(f"{self.Name}对{ys.Name}造成{self.Attack}的HP伤害")return self.Attackdef SkillQ(self):print(f"{self.Name}释放技能Q:天音波/回音击 --Echo--")time.sleep(1)print(f"{self.Name}技能Q:天音波/回音击-->命中")print(f"{self.Name}对{ys.Name}造成{self.Attack * 2}的HP伤害")return self.Attack * 2def SkillR(self):print(f"{self.Name}释放技能R:猛龙摆尾")time.sleep(1)print(f"{self.Name} --一库--")print(f"{self.Name}对{ys.Name}造成{self.Attack * 4}的HP伤害")return self.Attack * 4def __str__(self): # 内置魔法方法,输出对象时输出bar_length = 20h = '#' * int(self.HP / 100.0 * bar_length)s = '-' * (bar_length - len(h))h2 = '#' * int(self.MP / 100.0 * bar_length)s2 = '-' * (bar_length - len(h2))return " %s HP: [%s] %d %s MP: [%s] %d" % (self.Name, h + s, self.HP, self.Name, h2 + s2, self.MP)ys = YaSuo("疾风剑豪--亚索", 100, 100, 0.35)
xz = LiQing("盲僧——李青", 100, 100, 0.35)
写的极为简单,但是可以无限加,才学的我写这个已经很努力的在CSDN了。哈哈。全是最基础的点,看不懂就直接查知识点怎么用的。
第四步:写main(),写运行过程,前面的都是在给这个做准备!
写的跟实际上的还有是区别,但是我是为了学习,表达意思到位就ok。
# coding=utf-8
import time
import random
import LOL.Heroprint("\033[1;37;40m " + '-' * 20, '《英雄联盟》', '-' * 20 + "\033[0m")
print('请选择你的英雄:')
print('\t1.疾风剑豪——亚索')
print('\t2.盲僧——李青')
player_choose = input('请选择[1-2]:')
print('-' * 66)
if player_choose == '1':print('你已经选择了1,你将以-> 疾风剑豪——亚索 <-的身份来进行游戏!')
elif player_choose == '2':print('你已经选择了2,你将以你将以-> 盲僧——李青 <-的身份来进行游戏!')
else:print('你的输入有误,系统将自动分配身份,你将以-> 疾风剑豪 亚索 <-的身份来进行游戏!')num = 0
ys = LOL.Hero.YaSuo("疾风剑豪--亚索", 100, 100, 0.35)
xz = LOL.Hero.LiQing("盲僧——李青", 100, 100, 0.35)
print("\033[1;37;40m--------------------欢迎来到英雄联盟--------------------\033[0m")
time.sleep(1)
print("\033[1;37;40m-------------------敌军还有30秒到达战场------------------\033[0m")
time.sleep(1)
print("\033[1;37;40m------------------------全军出击------------------------\033[0m")
time.sleep(1)
ys.LinesYS()
xz.LinesMS()
while True:if ys.HP > 0 and xz.HP > 0:num += 1time.sleep(1)print(f"\033[1;37;40m============第{num}回合=============\033[0m")time.sleep(1)print(ys) # 输出对象,自动执行了上面的__str__魔法方法time.sleep(1)print(xz)a = random.randint(0, 100) # 随机攻击回合if a > 80: # 如果>60压缩攻击 ,瞎子掉血xz.HP -= ys.PuTong_Attack()elif 80 >= a > 60:ys.HP -= xz.PuTong_Attack()elif 60 >= a > 40: # 如果是60-40压缩放技能q,瞎子掉血xz.HP -= ys.SkillQ()elif 40 >= a > 20: # 如果是40-20瞎子放技能q,压缩掉血ys.HP -= xz.SkillQ()elif 20 >= a > 10: # 如果是10-20压缩放技能r,瞎子掉血xz.HP -= ys.SkillR()else:ys.HP -= xz.SkillR()else:if xz.HP <= 0: # 瞎子血为0,压缩获胜time.sleep(1)print(f"\033[1;32;41m %s WIN!!!! \033[0m" % ys.Name)time.sleep(1)print("\033[1;37;40m " + '-' * 20, 'GAME OVER', '-' * 20 + "\033[0m")breakelse:time.sleep(1)print(f"\033[1;32;41m %s WIN!!!! \033[0m" % xz.Name)time.sleep(1)print("\033[1;37;40m " + '-' * 20, 'GAME OVER', '-' * 20 + "\033[0m")break
ys.LinesYS()
xz.LinesMS()
其实写的有点花里胡哨的,哈哈哈,攻击靠运气,买东西不用给钱,哈哈,平a到就是赚到,a一下送把短剑,我也是人才!后面继续改进!
最后一步:对着main.py右键-run
其实还有很多代码不正规的地方,但是这是我写的第一个项目式代码。允许我姑且称她为一个项目,很简单,很基础,学了很多基础知识点,而且很有成就感,也感谢CSDN的前辈们对我的隔空指导!我会加油的!
最后跟英语跟我一样差的人,推荐个插件,哈哈,Tran***,后面几个字母记不到了。886!
最后最后,真的最后了,有人知道我封面的那个奥特曼名字是什么吗?
Python新手经典案例之奥特曼打怪兽-lol版相关推荐
- Python奥特曼打怪兽射击游戏(基于海龟画图创作的作品,来自Python创意编程100例sprites篇_Python精灵模块)
相信这竟然是Python用海龟画图制作的作品吗? sprites模块就是用python的turtle模块开发的!所以本作品仍属于Python海龟画图作品 """奥特曼打怪 ...
- Python奥特曼打怪兽射击游戏,基于海龟画图创作的作品
相信这竟然是Python用海龟画图制作的作品吗? sprites模块就是用python的turtle模块开发的!所以本作品仍属于Python海龟画图作品 """奥特曼打怪 ...
- 用Python做一个奥特曼打怪兽的小游戏
话不多说,往下看吧! 引入需要的模块 from sprites import * from pygame import mixer 设置页面格式(宽高等等) width,height = 800,60 ...
- Python编程经典案例【考题】自由落体运动球的运动轨迹
本文和你一起探索Python编程经典案例,让你沉浸式学习Python.助你期末考试拿高分,拿到大厂的心仪offer.你可以先自己拿着题目去思考有多少种不同的解题方法,然后再对照本文解题方法进行比较.有 ...
- Python机器学习经典案例实战-韦玮-专题视频课程
Python机器学习经典案例实战-3710人已学习 课程介绍 Python在机器学习领域应用是非常广泛的,比如,我们可以使用机器学习进行验证码识别,使用机器学习实现计算机视觉项目,或者 ...
- Java练习之奥特曼打怪兽(回合制)
Java练习 1.整体要求 奥特曼打怪兽,奥特曼有名字.攻击力.血量等属性,有技能:飞行.光线攻击: 怪兽有名字.攻击力和血量属性,有技能:奔跑.蛮力攻击. 创建奥特曼和怪兽对象,然后调用他们的属性和 ...
- Python编程经典案例【考题】求某个范围内能被3整除且能被5整除的所有数,及这些数的和
本文和你一起探索Python编程经典案例,让你沉浸式学习Python.你可以拿着题目先思考,然后再对照本文解题方法进行比较.有不同的见解欢迎到公众号中跟我一起探讨. 文章目录 一.经典案例[考题 ...
- Python编程经典案例【考题】排列组合
本文和你一起探索Python编程经典案例,让你沉浸式学习Python.你可以拿着题目先思考,然后再对照本文解题方法进行比较.有不同的见解欢迎到公众号中跟我一起探讨. 文章目录 一.经典案例[考题] 二 ...
- Python编程经典案例【考题】公司奖金发放
本文和你一起探索Python编程经典案例,让你沉浸式学习Python.你可以拿着题目先思考,然后再对照本文解题方法进行比较.有不同的见解欢迎到公众号中跟我一起探讨. 文章目录 一.经典案例[考题 ...
最新文章
- 微软开源的自动机器学习工具上新了:NNI概览及新功能详解
- 广西师范大学计算机调剂难吗,2014年广西师范大学考研调剂过来人给的建议
- 事物日志恢复 mysql_浅谈SQL Server中的事务日志(五)----日志在高可用和灾难恢复中的作用...
- 又拍云,音视频CDN加速利器
- java内存不足错误_调试Java内存不足错误
- 美团信用卡现金分期怎么还?
- 小精灵股市行情软件办公室专用绿色版.rar
- 电路实验一阶电路误差分析_逆变器电路原理分析
- python查看opencv版本
- ora 01033 linux,数据库ORA-01033错误解决办法
- CSS 固定定位 position fixed
- 红米手机开启---开发者选项方法
- 关于PaaS平台开发的五个大坑
- 神舟Z8-SP7D1驱动安装
- 1.7.1 计算机网络体系结构的形成
- ********广度优先搜索*********
- MATLAB 中 X轴修改成特定的坐标
- 什么叫少儿机器人编程
- 数据库中LIMIT和 OFFSET的理解
- c语言水仙花数256,c语言学习:求水仙花数
热门文章
- 智能家居设计新生态 “小Home Assistant” 智汀一站式全屋智能解决方案
- 用python做一个翻译器
- 注册商为阿里云的域名解析到腾讯云
- 新版chrome无法使用IDM下载
- win7连接wifi显示有限的访问权限,没有有效的IP配置,无法上网问题的解决办法
- SOLIDWORKS 如何重用DWG格式图纸
- STM32的printf函数串口重定义(HAL库和标准库都适用)
- [译]A Gentle Introduction to Functional Javascript part 4
- 天气微信小程序源码,附上线教程
- 往事如烟 - 老钟27