c语言英雄打怪兽掉箭题目,面向对象练习,写的一个简单的文字游戏,英雄打怪兽...
游戏的要求:如图
image.png (358.8 KB, 下载次数: 1)
游戏要求
2020-5-14 13:02 上传
源代码:importrandomasr
#英雄(大类),包含精灵和人类两类sclassHero:
#属性,这里使用__init__方法,在创建Hero对象时默认被调用def__init__(hero, name):
hero.name = name # 名字hero.level = 1# 等级hero.max_hp = hero.level*20# 最大生命hero.current_hp = hero.level*20# 当前生命#攻击defattack(hero):
atk = r.randint(0, hero.level*10-1)
print("-->英雄发起攻击!")
returnatk
#升级defupgrade(hero):
hero.current_hp= hero.current_hp+10#当前血量hero.level = hero.level +1#等级print("---->{} 升级,当前等级 {},当前血量 {}".format(hero.name, hero.level, hero.current_hp))
# 人类(英雄分支1)classHeroHuman(Hero):
# 属性def__init__(hero, name):
super(HeroHuman, hero).__init__(name)#继承hero.avd = 0.4# 灵活性#防御defdefense(hero, atk):
is_hurt = r.random()#产生随机数,如果小于0.4则躲避,大于则命中ifhero.avd < is_hurt:
hero.current_hp -= atk
print("-->英雄_人类:受到 {}点伤害,当前血量 {}".format(atk, hero.current_hp))
else:
print("-->英雄_人类:躲避,未命中!")
# 精灵(英雄分支2)classHeroSpirit(Hero):
# 属性def__init__(hero, name):
super(HeroSpirit, hero).__init__(name)
hero.avd = 0.7# 灵活性# 防御defdefense(hero, atk):
is_hurt = r.random()
ifhero.avd < is_hurt:
hero.current_hp -= atk
print("-->英雄_精灵:受到 {}点伤害,当前血量 {}".format( atk, hero.current_hp))
else:
print("-->英雄_精灵:躲避,未命中!")
#怪兽(大类),包含怪兽和大怪兽classMonster:
#属性def__init__(monster, name, level):
monster.name = name # 名字monster.level = level # 等级monster.max_hp = int(level * 15) # 最大生命monster.current_hp = int(level * 15) # 当前生命# 攻击defattack(monster):
atk = r.randint(0, monster.level * 10- 1)
print("-->怪兽发起攻击!".format(monster.name))
returnatk
# 防御defdefense(monster, atk):
monster.current_hp -= atk
print("-->怪兽受到 {} 点伤害,当前血量 {}".format( atk, monster.current_hp))
# 大怪兽,拥有护盾属性并重写防御方法classMonster_bigMonster(Monster):
# 属性def__init__(Big_monster, name, level):
super(Monster_bigMonster, Big_monster).__init__(name, level)
Big_monster.shield = Big_monster.max_hp * 0.2# 护盾# 防御defdefense(Big_monster, atk): # 重写防御方法,受到攻击优先扣除护盾ifBig_monster.shield - atk >= 0:
Big_monster.shield = atk-Big_monster.shield
print("-->大怪兽:受到 {}点伤害,当前护盾值 {} 血量 {}".format( atk, Big_monster.shield, Big_monster.current_hp))
else:
ifBig_monster.shield > 0:
Big_monster.current_hp -= Big_monster.shield
Big_monster.shield = 0print("-->大怪兽:受到 {}点伤害,当前护盾值 {} 血量 {}".format( atk, Big_monster.shield, Big_monster.current_hp))
else:
Big_monster.current_hp -= atk
print("-->大怪兽:受到 {}点伤害,当前护盾值 {} 血量 {}".format(Big_monster.name, atk, Big_monster.shield, Big_monster.current_hp))
#主方法defmain():
#生成一个英雄,两个低等级怪兽,一个大怪兽h1 = HeroHuman("人类")
m1 = Monster("怪兽1", 1)
m2 = Monster("怪兽2", 2)
m3 = Monster_bigMonster("大怪兽", 3)
enemy = [m1, m2, m3]
r = 1while True:
print("回合{}:".format(r))
enemy[0].defense(h1.attack()) # 英雄先攻击第一个怪兽,直到一方死亡ifenemy[0].current_hp <= 0: # 如果怪兽阵亡,从列表中删除这个怪兽,英雄升级print("{} 阵亡".format(enemy[0].name))
h1.upgrade()
delenemy[0]
# 判断英雄成功还是失败iflen(enemy) == 0: # 英雄胜利的条件是怪兽数量为0print("---->英雄:Win!")
returnforeach inenemy: # 英雄攻击完后,怪兽依次攻击英雄h1.defense(each.attack())
ifh1.current_hp <= 0: # 失败print("---->英雄:Lose!")
returnr += 1# 回合数#python程序入口if__name__ == '__main__':
main()
运行效果:
image.png (40.22 KB, 下载次数: 2)
运行效果1
2020-5-14 13:04 上传
image.png (29.42 KB, 下载次数: 2)
运行效果2
2020-5-14 13:05 上传
c语言英雄打怪兽掉箭题目,面向对象练习,写的一个简单的文字游戏,英雄打怪兽...相关推荐
- c语言英雄打怪兽掉箭题目,荒野乱斗:“打怪兽”有诀窍,英雄选择尤其重要...
原标题:荒野乱斗:"打怪兽"有诀窍,英雄选择尤其重要 荒野乱斗更新版本之后,有一个新的模式引起了三哥的注意.因为有"首领之战"的经验,三哥第一时间就尝试了这个新 ...
- c语言英雄打怪兽掉箭题目,高中English单句翻译练习精选840句
高中英语单句翻译练习精选840句 Translation (1) 1.她很有教书的才干.真遗憾她放弃了她的教师职 位.(ability, abandon) 2.每次我看到他的时候,他总是专心于他的功课 ...
- 最近写了一个简单的面向对象的脚本语言 Q 语言
最近写了一个简单的面向对象的脚本语言 Q 语言,语法类似于 Javascript, 加入了一些 python 的语法功能. 同时实现了部分的 Javascript prototype 的功能 (个人觉 ...
- C语言写的一个简单文字游戏-勇者斗恶龙
最近在学C语言,昨晚利用已学的循环.函数.变量等知识写了这样一个简陋的文字游戏,发在CSDN论坛上试试~~另外,如果代码有什么问题或者坏习惯,希望能帮我指出来.谢谢! #include <std ...
- C++写的一个简单的词法分析器(分析C语言)
实验用: 几点注意: 1.代码又长又臭,时间关系,没有优化,冗余项多(我都看不下去了.囧) 2.加了一下简单的错误检测.(在mapping.h中定义了错误类型,可以查阅) 3.使用头文件宏定义来表示单 ...
- 打地鼠程序代码C语言,自己用C写的一个简单的打地鼠游戏代码出了个问题(鼠标和循环不能...
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 b=0; /*保证上面不出界*/ if(a>getmaxx()-R) a=getmaxx()-R; /*保证右边不出界*/ if(b>getm ...
- c语言控制台数字键打地鼠,自己用C写的一个简单的打地鼠游戏代码出了个问题(鼠标和循环不能...
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 b=0; /*保证上面不出界*/ if(a>getmaxx()-R) a=getmaxx()-R; /*保证右边不出界*/ if(b>getm ...
- 用html5 Canvas制作一个简单的游戏 英雄抓小怪物(上)
1.创建一个Canvas对象 先在HTML页面上创建画布,然后再通过document.getElementById()来获取. //创建画布canvas,并获取画布上下文环境 var canvas ...
- C语言写的一个简单的计算器
大学的第一学期就这样结束了.前阵子临近放假,不知道该干嘛,就分别用java和C语言写了两个东西.java写了个文件查找的程序.C语言写了个简易的计算器.至于为什么写计算器~因为刚学C语言的时候,还没摸 ...
最新文章
- docker 连接容器
- python机器学习及实践_Python机器学习及实践
- Python递归实现汉诺塔
- Leet Code题解 - 1559. Detect Cycles in 2D Grid 检测二维无向图中的环
- 1195C. Basketball Exercise
- go 单元测试 testing 打印输出_2020,你需掌握go 单元测试进阶篇
- python小城市创业好项目_小城市创业好项目有哪些?
- 广西二级c语言试题,广西区计算机等级考二级C语言笔试试题及答案.doc
- linux 查看文件工具,lsof---Linux查看文件信息的强大工具
- 【java学习之路】(java SE篇)010.多线程
- 使用struts2中默认的拦截器以及自定义拦截器
- 实战PHP皮皮虾去水印解析接口
- Chrome电脑免安装多个浏览器版本号共存
- 计算机页面下没有桌面图标,电脑下面小图标没了怎么办
- PSI成长之路_配置并成功运行
- 铸造数据安全堤坝,华为云数据灾备解决方案就是强
- C++STL的发展历程
- TerminateThread
- 超级右键--Mac上最强的右键菜单工具
- C# WinForm跨线程访问UI控件