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. kettle5.4ODBC和OCI连接配置

    1.kettle 5.4 使用JDBC连接的时候报错(测试不同的数据库,发现只是连接11gRAC 的时候会报JDBC的错误) 具体报错如下 java.sql.SQLException: 建数据库连接出 ...

  2. cocos

    cocos compile -p android --android-studio --app-abi=armeabi-v7a ./adb kill-server&& ./adb se ...

  3. Solr7.x介绍安装和配置(单机版)

    之前学的是4.x,然后一看官网,奶奶的都7.x了.于是查了一番资料..... 1)下载和安装 wget http://mirror.bit.edu.cn/apache/lucene/solr/7.3. ...

  4. Asp.net中的ViewState用法

    Session,ViewState用法基本理论:session值是保存在服务器内存上,那么,可以肯定,大量的使用session将导致服务器负担加重. 而viewstate由于只是将数据存入到页面隐藏控 ...

  5. Spring AOP初步总结(三)

    最近遇到一个新需求:用户多次点击提交订单发生多次扣款,一开始准备配置数据库事务,但后来发现这种方法白白浪费很多资源,就改为利用接口上的切面对请求做拦截,并将当前登陆的用户存进Redis缓存,废话不说了 ...

  6. 在Magento System Configuration页面添加配置项

    以 Jp_Coupon 模块为例: 目标: 在 System configuration 页面添加一个 JP tab, 在JP中添加 Coupon section, 然后给 Coupon sectio ...

  7. *.rpm is not signed解决

    1.# yum install qemu*报错如下:Package qemu-kvm-tools-0.12.1.2-2.113.el6.x86_64.rpm is not signed2.解决# vi ...

  8. This is your path and you will pursue it with excellence.

    This is your path and you will pursue it with excellence.自己选的路就要走出精彩.

  9. 返回mapcontrol上的已被选择的element

     IGraphicsContainerSelect.SelectedElement

  10. 构建第一个Spring Boot2.0应用之集成mybatis、Druid(七)

    一.环境: IDE:IntelliJ IDEA 2017.1.1 JDK:1.8.0_161 Maven:3.3.9 springboot:2.0.2.RELEASE 二.说明:      本文综合之 ...