'''

Text For Class:

        League of Legends
Garen vs Riven vs Teemo ''' import random # 全局随机
import time class HeroName: # 英雄名字类
GameName = 'League of Legends' # 游戏名字
def __init__(self,hero_name): # 初始化设定,自身和形参名
self.hero_name = hero_name # 形参名初始化
self.HP = 800 # 血量初始化
if hero_name not in ['Garen','Riven','Teemo']: # 不是瑞文提莫盖伦
self.hero_name == 'Teemo' # 都为提莫
Teemo_HP = random.randint(100,250) # 提莫血量随机整数 全闭[100到250]
self.HP = Teemo_HP # 提莫血量赋名
self.__armor = 0 # 提莫格挡为0
self.__att = 1000 # 提莫攻击1000 elif hero_name == 'Teemo': # 提莫 HP 随机 100-250
Teemo_HP = random.randint(100, 250)
self.HP = Teemo_HP
self.__armor = 0 # 格挡 0
self.__att = 1000 # 攻击 1000 elif hero_name == 'Garen': # 盖伦 HP 800
self.__armor = 150 # 格挡 150
self.__att = 200 # 攻击 200 else : # 瑞文
self.__armor = 80 # 格挡 80 HP 800
self.__att = 300 # 攻击 300 @property
def armor_count(self):
return self.__armor def attack(self,enemy): n = 1
print('%s vs %s' % (self.hero_name, enemy.hero_name))
if self.hero_name == 'Teemo' or enemy.hero_name == 'Teemo':
print('Teemo必须死')
while True: if (enemy.HP > 0 and self.HP > 0):
print('----------------------------------')
print('第%s回合' %n) enemy.HP -= self.__att - enemy.armor_count
info_1 = self.hero_name,enemy.hero_name,enemy.hero_name,enemy.HP,self.hero_name,self.HP
print('%s攻击了%s,%s还剩%s滴血,%s还剩%s滴血'% info_1)
if enemy.HP > 0:
self.HP -= enemy.__att - self.armor_count
info_2 = enemy.hero_name, self.hero_name, self.hero_name, self.HP, enemy.hero_name, enemy.HP
print('%s反击了%s,%s还剩%s滴血,敌人%s还剩%s滴血' % info_2)
n += 1
# time.sleep(3)
else:
print('胜利,敌人%s已经阵亡' % enemy.hero_name)
break else:
print('你的角色%s已经阵亡' % self.hero_name)
break class Game: # 定义游戏类
name = 'League of Legends , Garen vs Riven vs Teemo' @classmethod # 能拿到类中定义的属性
def start(cls):
print('--- %s ---'% cls.name)
# League of Legends , Garen vs Riven vs Teemo H1 = HeroName('Garen')
H2 = HeroName('Riven')
H3 = HeroName('Teemo')
choose = random.randint(1,4)
if choose == 1:
enemy = H2.hero_name
# print('盖伦打瑞文')
H1.attack(H2) elif choose == 2:
enemy = H1.hero_name
# print('瑞文打盖伦')
H2.attack(H1) elif choose == 3:
H3 = HeroName('Teemo')
enemy = H1.hero_name
# print('提莫打盖伦')
H3.attack(H1) else:
H3 = HeroName('Teemo')
enemy = H3.hero_name
# print('盖伦打提莫')
H1.attack(H3) Game.start() # 游戏开始 '''
# -- (Problems in testing) ------------------------------------------------------------------------------------------
# -- (1.) ------------------------------------------------------------------------------------------------ # -- (import random *module) ----------------------------------------------------------------------------------------------
# -- (# auth code) ---------------------------------------------------------------------------------------------- import random # import random *module 声明随机模块
def auth_code(n): # 定义生成码函数,位形n 接 外实传n res=''
# 声明一个空字符串
# 因为下面随机出来一个是整型一个是字符串
# 在整型65,90中,把随机出来的数字通过内置chr,转换为ascii中对应的大写的A-Z,(97-122小写)
# 定义空字符串为了做字符串拼接 for i in range(n): # 循环范围传参
s1 = chr(random.randint(65,90)) # randint 大于等于65,小于等于90的整数,前闭后闭[65,90]
# 然后通过chr 转成ascii码对应的字符
# chr(65-90) 就是A-Z
# chr(97-122) 就是a-z # ord()函数主要用来返回对应字符的ascii码
# chr()主要用来表示ascii码对应的字符
# 可以用十进制,也可以用十六进制。 s2=str(random.randint(0,9))
# randint 大于等于0,小于等于9的整数,前闭后闭[0,9]
# 转成str字符串 res += random.choice([s1,s2]) # 二选一,现在输出都为字符串
# random.choice模块是通过[]列表的索引取值
# 每次循环结束都把结果 添加到定义的res空字符串中''字符串拼接 # 循环外界次数n次就循环n次,随机n次
return res # print(auth_code(9))
# res = 5U549I6H0... # ---- (Random Ex) ------------------------------------------------------------------------------------------------ # 1. # ascii:
# Capital(A-Z) for range(65,90)
# lower(a-z) for range(97,122) # Convert to ASCII code through Chr
# Then check result‘s type. s = random.randint(65, 90)
# 65|90|85|72
print(s,type(s))
# Enter --> s,int s = chr(s)
# s --> chr --> ascii
print(s,type(s))
# Enter --> s,str variable_name = random.choice([10,'25'])
print(variable_name)
# Enter -->
# case.1.Enter --> list[0,1] --> list[0] --> 10
# case.2.Enter --> list[0,1] --> list[1] --> '25' # res = random.choice(['x','y',random.randint(1,9)])
# print(res)
# Enter -->
# case.1.Enter --> list[0,1,2] --> list[0] --> 'x'
# case.2.Enter --> list[0,1,2] --> list[1] --> 'y'
# case.3.Enter --> list[0,1,2] --> list[2] --> random.randint(1,9) --> 1|2...|9 # ---------------------------------------------------------------------------------------------------------
# ---------------------------------------------------------------------------------------------------------
'''

面向对象text 01 盖伦vs瑞文vs提莫的更多相关文章

  1. Codevs 2801 LOL盖伦的蹲草计划

    题目描述 Description 众所周知,LOL这款伟大的游戏,有个叫盖伦的英雄.他的伟大之处在于他特别喜欢蹲草丛阴人(XL:蹲草阴人也算英雄?!CZQ:没办法,个个都是这么玩的).某日,德玛西亚与 ...

  2. python面向对象基础-01

    面向对象(OOP)基本概念 前言 话说三国时期曹军于官渡大败袁绍,酒席之间,曹操诗兴大发,吟道:喝酒唱歌,人生真爽! 众将直呼:"丞相好诗",于是命印刷工匠刻板印刷以流传天下; 待 ...

  3. 076 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 01 初识面向对象 01 Java面向对象导学

    076 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 01 初识面向对象 01 Java面向对象导学 本文知识点:Java面向对象导学 说明:因为时间紧张,本人 ...

  4. java基础学习05(面向对象基础01)

    面向对象基础01 1.理解面向对象的概念 2.掌握类与对象的概念3.掌握类的封装性4.掌握类构造方法的使用 实现的目标 1.类与对象的关系.定义.使用 2.对象的创建格式,可以创建多个对象3.对象的内 ...

  5. 081 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 01 初识面向对象 06 new关键字

    081 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 01 初识面向对象 06 new关键字 本文知识点:new关键字 说明:因为时间紧张,本人写博客过程中只是 ...

  6. 080 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 01 初识面向对象 05 单一职责原则

    080 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 01 初识面向对象 05 单一职责原则 本文知识点:单一职责原则 说明:因为时间紧张,本人写博客过程中只是 ...

  7. 079 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 01 初识面向对象 04 实例化对象

    079 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 01 初识面向对象 04 实例化对象 本文知识点:实例化对象 说明:因为时间紧张,本人写博客过程中只是对知 ...

  8. 078 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 01 初识面向对象 03 创建类

    078 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 01 初识面向对象 03 创建类 本文知识点:创建类 说明:因为时间紧张,本人写博客过程中只是对知识点的关 ...

  9. 077 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 01 初识面向对象 02 类和对象

    077 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 01 初识面向对象 02 类和对象 本文知识点:类和对象 说明:因为时间紧张,本人写博客过程中只是对知识点 ...

随机推荐

  1. Linux压缩与解压缩文件

    1 将tgz文件解压到指定目录. tar zxvf test.tgz -C 指定目录 比如:将 test.tgz 解压到 /home目录:tar zxvf test.tgz -C /home 2 将指 ...

  2. python-json函数

    json函数使用 JSON 函数需要导入 json 库:import jsonjson函数包含:json.dumps,json.loads,json.load,json.dump #1.json.du ...

  3. 数模美赛准备——我的第一个LaTex文档

    软件下载地址:清华大学镜像网站(点击下载) https://mirrors.tuna.tsinghua.edu.cn/ctex/legacy/2.9/ 上述网站页面 根据个人需求下载不同的版本安装完成 ...

  4. 《BUG创造队》第二次团队作业:团队项目选题报告

    项目 内容 这个作业属于哪个课程 2016级软件工程 这个作业的要求在哪里 实验六 团队作业2:团队项目选题 团队名称 BUG创造队 作业学习目标 可行性自评总结,并且采用NABCD方法进行项目初步分 ...

  5. istio-mix介绍

    mixer 概念 Mixer 是负责提供策略控制和遥测收集的 Istio 组件: 在每次请求执行先决条件检查之前以及在每次报告遥测请求之后,Envoy sidecar 在逻辑上调用 Mixer. 主要 ...

  6. ajax提交不进入后台报415错误

    Unsupported Media Type错误 问题所在为后台缺包和xml配置文档缺配置或配置不正确: Jackson的依赖问题,spring3.x和spring4.x是不同的: spring3.x ...

  7. 局域网内Ping不通

    局域网ping不通, 原来不可忽视这步......... 通常,经常在局域网里面,为了检测网络是否顺畅,都会ping一下IP,如果网络正常,就可以上网或者远程处理其他故障.但是会出现ping别人的主机 ...

  8. mysql数据库,取两列值中最大的一个值

    有表 zta,该表有两个字段 bf,ac,要取两个字段中,符合条件的最大的一个值,可用方法: select GREATEST(MAX(bf),MAX(ac))  maxvalue  from  zta ...

  9. ajax 提交数组 泛型集合

    ajax 提交数组 泛型集合 发表于2015/12/31 14:26:29  5117人阅读 分类: mvc asp.net webapi ORM 转载:http://blog.csdn.net/li ...

  10. QT:图形的描画(折线,柱状图,多边形)

    1. 创建一个继承于QWidget的类,重载一个叫paintEvent的函数, 2. 在paintEvent函数中调用Qpainter类,此类是一个重量级类,在paintEvent函数尽量只创建一次 ...