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. C. Jury Marks 思维题

    http://codeforces.com/contest/831/problem/C 做的时候想不到,来了个暴力. 对于每个b[i],枚举每一个a[i],就有1个可能的情况. 然后用vector存起 ...

  2. Gym 101047M Removing coins in Kem Kadrãn

    给定一个序列,只能拿走D,隔壁的会翻转,问能否全部拿走. 注意到如果能拿走的话,拿D的顺序是没关系的.模拟即可 #include <cstdio> #include <cstdlib ...

  3. OpenStack创建实例错误解决方法

    实例执行所请求操作失败,实例处于错误状态.: 请稍后再试 [错误: Build of instance beaeb5e0-26eb-4044-ae14-bb87d509886d aborted: Fa ...

  4. (转)Mysql数据库之Binlog日志使用总结Linux下用户组、文件权限详解

    Linux下用户组.文件权限详解 原文:http://blog.csdn.net/sdulibh/article/details/51566772 用户组 在linux中的每个用户必须属于一个组,不能 ...

  5. @Enable*注解的工作原理

    @EnableAspectJAutoProxy @EnableAsync @EnableScheduling @EnableWebMv @EnableConfigurationProperties @ ...

  6. 【转/TCP协议编程】 基于TCP的Socket 编程

    基于TCP(面向连接)的socket编程,分为客户端和服务器端. 客户端的流程如下: (1)创建套接字(socket) (2)向服务器发出连接请求(connect) (3)和服务器端进行通信(send ...

  7. VS找到了XXX的副本,但是当前源代码与XXX中内置的版本不同

    1.博客园有解决ASP.Net出现以上问题的方法: 删除ASP.Net临时文件夹内的dll文件. https://www.cnblogs.com/autumn/p/5261576.html 2.但我的 ...

  8. COGS 1453. [USACO NOV]空牛栏

    ★★   输入文件:empty.in   输出文件:empty.out   简单对比时间限制:1 s   内存限制:64 MB [题目描述] FJ建的新牛棚里有N(2<=N<=3,000, ...

  9. C语言的一小步—————— 一些小项目及解析

    ——-------- 仅以此献给东半球第二优秀的C语言老师,黑锤李某鸽,希望总有那么一天我们的知识可以像他的丰臀一样渊博! bug跟蚊子的相似之处: 1.不知道藏在哪里. 2.不知道有多少. 3.总是 ...

  10. javascript:理解DOM事件

    首先,此文不讨论繁琐细节,但是考虑到读者的心灵感受,本着以积极向上的心态,在此还是会列举示例说明. ​标题为理解DOM事件,那么在此拿一个简单的点击事件为例,希望大家看到这个例子后能触类旁通. DOM ...