面向对象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 类和对象 本文知识点:类和对象 说明:因为时间紧张,本人写博客过程中只是对知识点 ...
随机推荐
- CHM文件命令转换成html
在Windows下chm转换为html的超简单方法(反编译CHM文件的方法) 通过调用Windows命令,将chm 文件转换为html 文件. 方法: 命令行(cmd),输入hh -decompile ...
- Vue.js——60分钟快速入门(转)
vue:Vue.js——60分钟快速入门 <!doctype html> <html lang="en"> <head> <meta ch ...
- 一道面试题引发对javascript事件循环机制(Event Loop)的 思考(这里讨论针对浏览器)
- this的四种用法
函数运行时,自动生成的一个内部对象,只能在函数内部使用 随着函数使用场合的不同,this的值也发生着改变,但是有一个总原则:this指的是调用函数的那个对象(核心) 1.纯粹的函数调用 this指的是 ...
- 爬虫(五)requests模块2
引入 有些时候,我们在使用爬虫程序去爬取一些用户相关信息的数据(爬取张三“人人网”个人主页数据)时,如果使用之前requests模块常规操作时,往往达不到我们想要的目的,例如: #!/usr/bin/ ...
- angular6 safe url pipe
safe-url.pipe.ts import { Pipe, PipeTransform } from '@angular/core'; import { DomSanitizer } from ' ...
- Centos7中网络及设备相关配置
centos7中,不再赞成使用ifconfig工具,取而代之的是nmcli工具,服务管理也是以systemctl工具取代了service,这些之前版本的工具虽然在centos7中还可以继续使用,只是出 ...
- CentOS7系统上的GPSTK源码安装
网址:http://www.gpstk.org/bin/view/Documentation/BuildingGPSTkUnderUnix 这里使用Cmake来安装源码,网站上的原文摘抄如下,有少部分 ...
- javaEE完整体系结构
学习之前了解熟悉一下javaEE的完整体系结构会更有助于理解 https://segmentfault.com/a/1190000007090110
- 用HTML+CSS编写一个计科院网站首页的静态网页
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...