1. '''
  2.  
  3. Text For Class:
  4.  
  5. League of Legends
  6. Garen vs Riven vs Teemo
  7.  
  8. '''
  9.  
  10. import random # 全局随机
  11. import time
  12.  
  13. class HeroName: # 英雄名字类
  14. GameName = 'League of Legends' # 游戏名字
  15. def __init__(self,hero_name): # 初始化设定,自身和形参名
  16. self.hero_name = hero_name # 形参名初始化
  17. self.HP = 800 # 血量初始化
  18. if hero_name not in ['Garen','Riven','Teemo']: # 不是瑞文提莫盖伦
  19. self.hero_name == 'Teemo' # 都为提莫
  20. Teemo_HP = random.randint(100,250) # 提莫血量随机整数 全闭[100到250]
  21. self.HP = Teemo_HP # 提莫血量赋名
  22. self.__armor = 0 # 提莫格挡为0
  23. self.__att = 1000 # 提莫攻击1000
  24.  
  25. elif hero_name == 'Teemo': # 提莫 HP 随机 100-250
  26. Teemo_HP = random.randint(100, 250)
  27. self.HP = Teemo_HP
  28. self.__armor = 0 # 格挡 0
  29. self.__att = 1000 # 攻击 1000
  30.  
  31. elif hero_name == 'Garen': # 盖伦 HP 800
  32. self.__armor = 150 # 格挡 150
  33. self.__att = 200 # 攻击 200
  34.  
  35. else : # 瑞文
  36. self.__armor = 80 # 格挡 80 HP 800
  37. self.__att = 300 # 攻击 300
  38.  
  39. @property
  40. def armor_count(self):
  41. return self.__armor
  42.  
  43. def attack(self,enemy):
  44.  
  45. n = 1
  46. print('%s vs %s' % (self.hero_name, enemy.hero_name))
  47. if self.hero_name == 'Teemo' or enemy.hero_name == 'Teemo':
  48. print('Teemo必须死')
  49. while True:
  50.  
  51. if (enemy.HP > 0 and self.HP > 0):
  52. print('----------------------------------')
  53. print('第%s回合' %n)
  54.  
  55. enemy.HP -= self.__att - enemy.armor_count
  56. info_1 = self.hero_name,enemy.hero_name,enemy.hero_name,enemy.HP,self.hero_name,self.HP
  57. print('%s攻击了%s,%s还剩%s滴血,%s还剩%s滴血'% info_1)
  58. if enemy.HP > 0:
  59. self.HP -= enemy.__att - self.armor_count
  60. info_2 = enemy.hero_name, self.hero_name, self.hero_name, self.HP, enemy.hero_name, enemy.HP
  61. print('%s反击了%s,%s还剩%s滴血,敌人%s还剩%s滴血' % info_2)
  62. n += 1
  63. # time.sleep(3)
  64. else:
  65. print('胜利,敌人%s已经阵亡' % enemy.hero_name)
  66. break
  67.  
  68. else:
  69. print('你的角色%s已经阵亡' % self.hero_name)
  70. break
  71.  
  72. class Game: # 定义游戏类
  73. name = 'League of Legends , Garen vs Riven vs Teemo'
  74.  
  75. @classmethod # 能拿到类中定义的属性
  76. def start(cls):
  77. print('--- %s ---'% cls.name)
  78. # League of Legends , Garen vs Riven vs Teemo
  79.  
  80. H1 = HeroName('Garen')
  81. H2 = HeroName('Riven')
  82. H3 = HeroName('Teemo')
  83. choose = random.randint(1,4)
  84. if choose == 1:
  85. enemy = H2.hero_name
  86. # print('盖伦打瑞文')
  87. H1.attack(H2)
  88.  
  89. elif choose == 2:
  90. enemy = H1.hero_name
  91. # print('瑞文打盖伦')
  92. H2.attack(H1)
  93.  
  94. elif choose == 3:
  95. H3 = HeroName('Teemo')
  96. enemy = H1.hero_name
  97. # print('提莫打盖伦')
  98. H3.attack(H1)
  99.  
  100. else:
  101. H3 = HeroName('Teemo')
  102. enemy = H3.hero_name
  103. # print('盖伦打提莫')
  104. H1.attack(H3)
  105.  
  106. Game.start() # 游戏开始
  107.  
  108. '''
  109. # -- (Problems in testing) ------------------------------------------------------------------------------------------
  110. # -- (1.) ------------------------------------------------------------------------------------------------
  111.  
  112. # -- (import random *module) ----------------------------------------------------------------------------------------------
  113. # -- (# auth code) ----------------------------------------------------------------------------------------------
  114.  
  115. import random # import random *module 声明随机模块
  116. def auth_code(n): # 定义生成码函数,位形n 接 外实传n
  117.  
  118. res=''
  119. # 声明一个空字符串
  120. # 因为下面随机出来一个是整型一个是字符串
  121. # 在整型65,90中,把随机出来的数字通过内置chr,转换为ascii中对应的大写的A-Z,(97-122小写)
  122. # 定义空字符串为了做字符串拼接
  123.  
  124. for i in range(n): # 循环范围传参
  125. s1 = chr(random.randint(65,90))
  126.  
  127. # randint 大于等于65,小于等于90的整数,前闭后闭[65,90]
  128. # 然后通过chr 转成ascii码对应的字符
  129. # chr(65-90) 就是A-Z
  130. # chr(97-122) 就是a-z
  131.  
  132. # ord()函数主要用来返回对应字符的ascii码
  133. # chr()主要用来表示ascii码对应的字符
  134. # 可以用十进制,也可以用十六进制。
  135.  
  136. s2=str(random.randint(0,9))
  137. # randint 大于等于0,小于等于9的整数,前闭后闭[0,9]
  138. # 转成str字符串
  139.  
  140. res += random.choice([s1,s2]) # 二选一,现在输出都为字符串
  141. # random.choice模块是通过[]列表的索引取值
  142. # 每次循环结束都把结果 添加到定义的res空字符串中''字符串拼接
  143.  
  144. # 循环外界次数n次就循环n次,随机n次
  145. return res #
  146.  
  147. print(auth_code(9))
  148. # res = 5U549I6H0...
  149.  
  150. # ---- (Random Ex) ------------------------------------------------------------------------------------------------
  151.  
  152. # 1.
  153.  
  154. # ascii:
  155. # Capital(A-Z) for range(65,90)
  156. # lower(a-z) for range(97,122)
  157.  
  158. # Convert to ASCII code through Chr
  159. # Then check result‘s type.
  160.  
  161. s = random.randint(65, 90)
  162. # 65|90|85|72
  163. print(s,type(s))
  164. # Enter --> s,int
  165.  
  166. s = chr(s)
  167. # s --> chr --> ascii
  168. print(s,type(s))
  169. # Enter --> s,str
  170.  
  171. variable_name = random.choice([10,'25'])
  172. print(variable_name)
  173. # Enter -->
  174. # case.1.Enter --> list[0,1] --> list[0] --> 10
  175. # case.2.Enter --> list[0,1] --> list[1] --> '25'
  176.  
  177. # res = random.choice(['x','y',random.randint(1,9)])
  178. # print(res)
  179. # Enter -->
  180. # case.1.Enter --> list[0,1,2] --> list[0] --> 'x'
  181. # case.2.Enter --> list[0,1,2] --> list[1] --> 'y'
  182. # case.3.Enter --> list[0,1,2] --> list[2] --> random.randint(1,9) --> 1|2...|9
  183.  
  184. # ---------------------------------------------------------------------------------------------------------
  185. # ---------------------------------------------------------------------------------------------------------
  186. '''

面向对象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. 浅谈Pool对象

    Pool对象的技术指标: 避免频繁创建经常使用的稀有资源,提高工作效率. 控制阀值,很多情况下一些关键资源都有一个最佳并发数,超过这个拐点性能有可能急剧下降,也有可能继续增大并发数性能不能提升. 安全 ...

  2. ionic2 获取dom节点

    ionic2页面上面获取dom节点,可以直接用原生的方法,document.querySelector()等, 但是不建议这样使用,建议使用官方的.就是要在获取的节点上加上#name的属性(相当于ge ...

  3. PHP获取POST的几种方法

    一.PHP获取POST数据的几种方法 方法1.最常见的方法是:$_POST['fieldname'];说明:只能接收Content-Type: application/x-www-form-urlen ...

  4. Django介绍

    diango介绍 web框架介绍 web框架: Web应用框架(Web application framework)是一种开发框架,用来支持动态网站.网络应用程序及网络服务的开发.其类型有基于请求的和 ...

  5. 小T牛 绿色版 18.08.0100

    百度网盘 链接:https://pan.baidu.com/s/1g2PIMBR8YAdz5skH5ogFhw 密码:3o4k 小T牛 小T牛 绿色版 18.08.0100 意见反馈:qq(邮箱):6 ...

  6. Python OS模块常用

    python 读写.创建 文件 第二个:目录操作-增删改查 第三个:判断 第四个:PATH 第四个:os.mknod 创建文件(不是目录) import os os.chdir("/&quo ...

  7. SpringBoot是什么,可以做什么?

    SpringBoot简析 1.SpringBoot是什么?    在Spring框架这个大家族中,产生了很多衍生框架,比如 Spring.SpringMvc框架等,Spring的核心内容在于控制反转( ...

  8. Ubuntu18.04下给PyCharm创建快捷方式

    Ubuntu18.04下给PyCharm创建快捷方式 该方法 WebStorm.PyCharm.Clion 等都适用. 步骤 终端输入: sudo gedit /usr/share/applicati ...

  9. 学习笔记------------解决margin塌陷

    首先来解释一下什么是marg塌陷? 父子嵌套元素垂直方向的margin,父子元素是结合在一起的,他们两个会取其中最大的值 正常情况下应该是父级元素相对于浏览器定位,而子级元素相对于父级元素定位 但是m ...

  10. Tensorflow安装指南

    1.关闭所有安全工具!!!!!(非常重要!否则很可能安装失败) 2.下载CUDA 地址https://developer.nvidia.com/accelerated-computing-toolki ...