'''

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. springboot 返回json字符串格式化问题

    在idea中yml文件中添加以下注解就可以格式化json字符串效果 spring: jackson: serialization: indent-output: true 原返回json格式为: {& ...

  2. selenium、UA池、ip池、scrapy-redis的综合应用案例

    案例: 网易新闻的爬取: https://news.163.com/ 爬取的内容为一下4大板块中的新闻内容 爬取: 特点: 动态加载数据  ,用 selenium 爬虫 1. 创建项目 scrapy ...

  3. 面试题3--数组中的重复数字(new数组的新写法)

    总是忘了一些条件的判断,比如非空或者其他之类. #include<iostream> using namespace std; int Frepeat(int num[],int leng ...

  4. istio路由配置

    istio路由配置   istio的代理配置参考文档: 中文文档: https://istio.io/zh/docs/reference/config/istio.networking.v1alpha ...

  5. GDT与LDT

    保护模式下的段寄存器 由 16位的选择器 与 64位的段描述符寄存器 构成段描述符寄存器: 存储段描述符选择器:存储段描述符的索引 PS:原先实模式下的各个段寄存器作为保护模式下的段选择器,80486 ...

  6. IDEA常用操作

    ctrl+tab:切换不同的tab Ctrl+D:比较两个目录或文件(先选中) Alt+斜杠 :智能感知提示单词 Ctrl+K :版本修改记录 Alt+Enter:正则检查 Ctrl+Alt+B:查找 ...

  7. 【转】10分钟就能学会的.NET Core配置

    .NET Core为我们提供了一套用于配置的API,它为程序提供了运行时从文件.命令行参数.环境变量等读取配置的方法.配置都是键值对的形式,并且支持嵌套,.NET Core还内建了从配置反序列化为PO ...

  8. 在 ubuntu18.04 中搭建 Django 开发环境

    在Ubuntu 18.04 安装 python3.pip3.pycharm,搭建 Django 开发环境. 1.安装 python3 pip3 sudo apt-get install python3 ...

  9. 框架-thrift-zookeeper-kafka

    Apache Thrift 是 Facebook 实现的一种高效的.支持多种编程语言的远程服务调用的框架. 目前流行的服务调用方式有很多种,例如基于 SOAP 消息格式的 Web Service,基于 ...

  10. JAVA实现简单的四则运算

    GitHub 项目地址 https://github.com/745421831/-/tree/master PSP PSP2.1 Personal Software Process Stages 预 ...