class Hero:
def __init__(self, new_nickname,
new_aggressivity,
new_life_value,
new_money,
new_armor # 护甲值为:12
):
self.nickname = new_nickname
self.aggressivity = new_aggressivity
self.life = new_life_value
self.money = new_money
self.armor = new_armor
self.equip_list = []
self.count = 0 def __str__(self):
if self.count == 1:return '请不要鞭尸!谢谢合作'
if self.life == 0:
self.count += 1
return '这傻叉已经被你活活打死了哦!'
else:
msg = "(英雄)%s的攻击力为:%d,生命值为:%d,你有:%d金币,护甲值:%d" \
% (self.nickname, self.aggressivity, self.life, self.money, self.armor)
msg += " 身上的装备有%s" % (str(self.equip_list))
return msg def add_equip(self, equip):
self.money -= equip.get_price() # 装备的价钱!用自己的钱购买装备后的余额
self.aggressivity += equip.aggrev
self.equip_list.append(equip.get_name()) def attack(self, enemy):
damage_value = self.aggressivity - enemy.armor # 再减护甲值相当于掉血量damage_value
enemy.life -= damage_value
if enemy.life < 0:
enemy.life = 0 # 如果血量是负数说明已经死了!写血量为0即可
print('%s向%s发起了一次攻击' % (self.nickname, enemy.nickname))
print('%s的生命值减少了%s,剩余生命值为%s' % (enemy.nickname, damage_value, enemy.life)) class Equip:
def __init__(self, new_name, new_price, life_value, new_aggrev):
self.name = new_name
self.price = new_price # BlackCleaver
self.lif_value = life_value
self.aggrev = new_aggrev def __str__(self):
return "装备(%s)的价钱为:%d" % (self.name, self.price) def get_price(self):
return self.price def get_name(self):
return self.name Ruiwen = Hero('锐雯', 54, 414, 9999, 12)
print(Ruiwen)
shop_duolanjian = Equip('多兰之刃', 475, 100, 9)
print(shop_duolanjian)
shop_wujin = Equip('无尽之刃', 3600, 0, 80)
print(shop_wujin) Ruiwen.add_equip(shop_duolanjian)
print(Ruiwen)
Ruiwen.add_equip(shop_wujin)
print(Ruiwen)
Ruiwen.add_equip(shop_wujin)
print(Ruiwen)
Gailun = Hero('盖伦', 54, 455, 9999, 19)
print(Gailun)
Gailun.attack(Ruiwen) print(Ruiwen) # 查看锐雯是不是被攻击并血量值减少了
Ruiwen.attack(Gailun)
print()
print(Gailun)
Ruiwen.attack(Gailun)
print()
print(Gailun)
Ruiwen.attack(Gailun)
print()
# Ruiwen.attack(Gailun)#好像已经死了,不存在鞭尸的哦!- -
print(Gailun)
print('-'*50)
Ruiwen.attack(Gailun)
print()
print(Gailun)

LOL游戏基本代码的更多相关文章

  1. JS写小游戏(一):游戏框架

    前言 前一阵发现一个不错的网站,都是一些用html5+css+js写的小游戏,于是打算学习一番,写下这个系列博客主要是为了加深理解,当然也有一些个人感悟,如果英文好可以直接Click Here. 概述 ...

  2. NeHe OpenGL教程 第三十二课:拾取游戏

    转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线 ...

  3. Unity3D--学习太空射击游戏制作(二)

    步骤三:创建主角 游戏的主角是一艘太空飞船,我们将使用一个飞船模型作为游戏的主角,并赋予他一个脚本,控制他的运动,游戏体的组件必须依赖于脚本才能运行. 01:在Project窗口找到Player.fb ...

  4. 【C语言探索之旅】 第二部分第九课: 实战"悬挂小人"游戏 答案

    内容简介 1.课程大纲 2.第二部分第九课: 实战"悬挂小人"游戏 答案 3.第二部分第十课预告: 安全的文本输入 课程大纲 我们的课程分为四大部分,每一个部分结束后都会有练习题, ...

  5. jQuery版推箱子游戏详解和源码

    前言 偶然间看到很多用js写游戏的感觉很炫酷的样子,所以就想试试,就看了一些资料和某前端站点的视屏.于是乎就自己动手实践了一下,上推箱子截图 感觉很丑陋,但是功能是实现了.再说貌似大多都是这样的吧,这 ...

  6. userAgent,JS这么屌的用户代理,你造吗?——判断浏览器内核、浏览器、浏览器平台、windows操作系统版本、移动设备、游戏系统

    1.识别浏览器呈现引擎 为了不在全局作用域中添加多余变量,这里使用单例模式(什么是单例模式?)来封装检测脚本.检测脚本的基本代码如下所示: var client = function() { var ...

  7. MMORPG战斗系统随笔(四)、优化客户端游戏性能

    转载请标明出处http://www.cnblogs.com/zblade/ 说到游戏性能,这是一个永恒的话题.在游戏开发的过程中,性能问题一直是我们研发需要关注的一个节点.当然,说句客观话,很多程序员 ...

  8. Java实现贪吃蛇游戏【代码】

    花了两个下午写了一个贪吃蛇小游戏,本人想写这游戏很长时间了.作为以前诺基亚手机上的经典游戏,贪吃蛇和俄罗斯方块一样,都曾经在我们的童年给我们带来了很多乐趣.世间万物斗转星移,诺基亚曾经作为手机业的龙头 ...

  9. 【Unity3D】射箭打靶游戏(简单工厂+物理引擎编程)

    打靶游戏:     1.靶对象为 5 环,按环计分:    2.箭对象,射中后要插在靶上:    3.游戏仅一轮,无限 trials: 增强要求:  添加一个风向和强度标志,提高难度 游戏成品图: U ...

随机推荐

  1. Spring 学习(三)AOP

    (1)AOP概述 - AOP:面向切面编程,扩展功能不修改源代码实现 - AOP采取横向抽取机制,取代了传统的纵向继承体系重复性代码 (2)AOP底层原理 原始方法------->纵向继承体系 ...

  2. MapReduce的输入格式

    1. InputFormat接口 InputFormat接口包含了两个抽象方法:getSplits()和creatRecordReader().InputFormat决定了Hadoop如何对文件进行分 ...

  3. SpringMVC07SelfException 自定义异常

    1.配置web.xml文件 <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3// ...

  4. 邓俊辉数据结构学习-8-2-B树

    B树 概述 动机: B树实现高速I/O 640K如何"满足"任何实际需求了-- 源自比尔·盖茨的一个笑话 前提知识 高速缓存 为什么高速缓存有效? 不同容量的存储器,访问速度差异悬 ...

  5. java - Socket简单编程实践

    1.简介: 1)SOCKET是应用程序和网络之间的一个接口.SOCKET创建设置好以后,应用程序可以: 通过网络把数据发送到socket . 通过网络从socket接收数据.(通信的前提是应用程序知道 ...

  6. Compaq Visual Fortran生成静态库的方法及使用

    Compaq Visual Fortran 6.5生成lib静态库详细方法: 打开Compaq Visual Fortran,新建Fortran Static Library工程,命名为ForLib: ...

  7. Android 从零开始搭建一个主流项目框架—RxJava2.0+Retrofit2.0+OkHttp

    我这里的网络请求是用的装饰者模式去写的,什么是装饰者模式呢?在不必改变原类文件和使用继承的情况下,动态地扩展一个对象的功能.它是通过创建一个包装对象,也就是装饰来包裹真实的对象.我的理解就是一个接口, ...

  8. 开发Maven插件

    Mojo: Maven plain Old Java Object 1.插件命名规则:maven-<yourplugin>-plugin是Maven的保留字段,不允许使用,我们可以用< ...

  9. linux 命令——5 rm(转)

    昨天学习了创建文件和目录的命令mkdir ,今天学习一下linux中删除文件和目录的命令: rm命令.rm是常用的命令,该命令的功能为删除一个目录中的一个或多个文件或目录,它也可以将某个目录及其下的所 ...

  10. 提升Web性能的8个技巧总结

    提升Web性能的8个技巧总结 在互联网盛行的今天,越来越多的在线用户希望得到安全可靠并且快速的访问体验.针对Web网页过于膨胀以及第三脚本蚕食流量等问题,Radware向网站运营人员提出以下改进建议, ...