'''

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 # ---------------------------------------------------------------------------------------------------------
# ---------------------------------------------------------------------------------------------------------
'''

最新文章

  1. ubuntu下网络IP设置相关命令
  2. 27个知名企业品牌VI视觉识别系统规范手册
  3. (七)shell编程学习
  4. Interview----2 sum
  5. Mantis 安装与配置
  6. packinfo-java的作用
  7. windows查看服务端口
  8. angular2 学习笔记 ( Form 表单 )
  9. Opengl4.5 中文手册—C
  10. 无法远程连接SQLSERVER2000的解决方法
  11. Log4j1.2配置详解
  12. NuGet包断线续传下载
  13. centOS7防火墙关闭失败问题
  14. Spring MVC 使用介绍(二)—— DispatcherServlet
  15. 20165237 2017-2018-2 《Java程序设计》第十周考试补做及编程题
  16. 问题 L: An Invisible Hand - (2018年第二阶段个人训练赛第三场)
  17. shiro入门教程
  18. 第三视角Beta答辩总结
  19. [daily][centos][iptables][firewalld] firewalld的初步了解
  20. TZOJ 1221 Tempter of the Bone(回溯+剪枝)

热门文章

  1. django+mysql学习笔记
  2. Android SDK Android NDK Android Studio 官方下载地址
  3. jquery获得图片的真实大小
  4. baidu 快递查询API
  5. 洛谷P1930 亚瑟王的宫殿 Camelot
  6. Redis 四:存储类型之有序集合
  7. ExtJs布局之tabPanel
  8. 网络基本功(八):细说TCP滑动窗口
  9. leetcode:Minimum Path Sum(路线上元素和的最小值)【面试算法题】
  10. App Store不能下载一直等待中的两种解决办法
  11. 【Java SE】利用Java的for循环加random制作小学试卷
  12. 补习系列(15)-springboot 分布式会话原理
  13. 初识C语言(三)
  14. c# 后台 添加datable 数据
  15. Intellij IDEA配置PHP开发环境
  16. 从swap说引用
  17. 大数据入门到精通10--spark rdd groupbykey的使用
  18. LINUX系统一一CentOS6.5之tomcat安装
  19. ddt ddl dml
  20. 洛谷P4437 排列 [HNOI/AHOI2018] 贪心