面向对象text 01 盖伦vs瑞文vs提莫
- '''
- 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提莫的更多相关文章
- Codevs 2801 LOL盖伦的蹲草计划
题目描述 Description 众所周知,LOL这款伟大的游戏,有个叫盖伦的英雄.他的伟大之处在于他特别喜欢蹲草丛阴人(XL:蹲草阴人也算英雄?!CZQ:没办法,个个都是这么玩的).某日,德玛西亚与 ...
- python面向对象基础-01
面向对象(OOP)基本概念 前言 话说三国时期曹军于官渡大败袁绍,酒席之间,曹操诗兴大发,吟道:喝酒唱歌,人生真爽! 众将直呼:"丞相好诗",于是命印刷工匠刻板印刷以流传天下; 待 ...
- 076 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 01 初识面向对象 01 Java面向对象导学
076 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 01 初识面向对象 01 Java面向对象导学 本文知识点:Java面向对象导学 说明:因为时间紧张,本人 ...
- java基础学习05(面向对象基础01)
面向对象基础01 1.理解面向对象的概念 2.掌握类与对象的概念3.掌握类的封装性4.掌握类构造方法的使用 实现的目标 1.类与对象的关系.定义.使用 2.对象的创建格式,可以创建多个对象3.对象的内 ...
- 081 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 01 初识面向对象 06 new关键字
081 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 01 初识面向对象 06 new关键字 本文知识点:new关键字 说明:因为时间紧张,本人写博客过程中只是 ...
- 080 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 01 初识面向对象 05 单一职责原则
080 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 01 初识面向对象 05 单一职责原则 本文知识点:单一职责原则 说明:因为时间紧张,本人写博客过程中只是 ...
- 079 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 01 初识面向对象 04 实例化对象
079 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 01 初识面向对象 04 实例化对象 本文知识点:实例化对象 说明:因为时间紧张,本人写博客过程中只是对知 ...
- 078 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 01 初识面向对象 03 创建类
078 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 01 初识面向对象 03 创建类 本文知识点:创建类 说明:因为时间紧张,本人写博客过程中只是对知识点的关 ...
- 077 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 01 初识面向对象 02 类和对象
077 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 01 初识面向对象 02 类和对象 本文知识点:类和对象 说明:因为时间紧张,本人写博客过程中只是对知识点 ...
随机推荐
- 浅谈Pool对象
Pool对象的技术指标: 避免频繁创建经常使用的稀有资源,提高工作效率. 控制阀值,很多情况下一些关键资源都有一个最佳并发数,超过这个拐点性能有可能急剧下降,也有可能继续增大并发数性能不能提升. 安全 ...
- ionic2 获取dom节点
ionic2页面上面获取dom节点,可以直接用原生的方法,document.querySelector()等, 但是不建议这样使用,建议使用官方的.就是要在获取的节点上加上#name的属性(相当于ge ...
- PHP获取POST的几种方法
一.PHP获取POST数据的几种方法 方法1.最常见的方法是:$_POST['fieldname'];说明:只能接收Content-Type: application/x-www-form-urlen ...
- Django介绍
diango介绍 web框架介绍 web框架: Web应用框架(Web application framework)是一种开发框架,用来支持动态网站.网络应用程序及网络服务的开发.其类型有基于请求的和 ...
- 小T牛 绿色版 18.08.0100
百度网盘 链接:https://pan.baidu.com/s/1g2PIMBR8YAdz5skH5ogFhw 密码:3o4k 小T牛 小T牛 绿色版 18.08.0100 意见反馈:qq(邮箱):6 ...
- Python OS模块常用
python 读写.创建 文件 第二个:目录操作-增删改查 第三个:判断 第四个:PATH 第四个:os.mknod 创建文件(不是目录) import os os.chdir("/&quo ...
- SpringBoot是什么,可以做什么?
SpringBoot简析 1.SpringBoot是什么? 在Spring框架这个大家族中,产生了很多衍生框架,比如 Spring.SpringMvc框架等,Spring的核心内容在于控制反转( ...
- Ubuntu18.04下给PyCharm创建快捷方式
Ubuntu18.04下给PyCharm创建快捷方式 该方法 WebStorm.PyCharm.Clion 等都适用. 步骤 终端输入: sudo gedit /usr/share/applicati ...
- 学习笔记------------解决margin塌陷
首先来解释一下什么是marg塌陷? 父子嵌套元素垂直方向的margin,父子元素是结合在一起的,他们两个会取其中最大的值 正常情况下应该是父级元素相对于浏览器定位,而子级元素相对于父级元素定位 但是m ...
- Tensorflow安装指南
1.关闭所有安全工具!!!!!(非常重要!否则很可能安装失败) 2.下载CUDA 地址https://developer.nvidia.com/accelerated-computing-toolki ...