面向对象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 类和对象 本文知识点:类和对象 说明:因为时间紧张,本人写博客过程中只是对知识点 ...
 
随机推荐
- Mock.js——数据模板定义
			
1. 安装 npm install mockjs --save-dev //安装开发依赖 2. 数据模板定义规则 Mock.mock({...}) String: 'string|num1-num2' ...
 - js浮点数运算精度问题
			
https://www.cnblogs.com/yadongliang/p/9067333.html
 - 关于node
			
nodejs npm常用命令 npm是一个node包管理和分发工具,已经成为了非官方的发布node模块(包)的标准.有了npm,可以很快的找到特定服务要使用的包,进行下载.安装以及管理已经安装的包. ...
 - 推荐一个好用的E2E前端测试框架cypress
			
Cypress 是一个E2E的前端自动化测试框架,同样是基于BDD的思想设计的,话不多说,上demo https://github.com/Spillage/cypress-demo PS, 还有一个 ...
 - Java 中的按值传递
			
Java 中只有按值传递 "Java 中只有按值传递",初看到这几个字有点不敢相信,无数次通过函数改变过对象,无数次跟同事说 Java 在传对象的时候是按引用传递.后来细细想想,之 ...
 - jdk 版本切换
			
由于要创建一个新的项目,启动时报错了,Spring boot 启动报错 Unsupported major.minor version 52.0,是因为jdk版本太低了,从目前是1.7,我已经安装过了 ...
 - Spring学习之实例化bean的三种方式
			
实例化bean的三种方式 构造器实例化bean Person.java public class Person { private String name; private Integer age; ...
 - yii防止延迟用户多次点击按钮重复提交数据
			
是不是被用户的行为所困扰? 一. 一个表单用户点击提交按钮了N次,这也导致了数据提交了N次. 为了此受到了测试的欺辱,受到了老板的批评? 不用怕,它就是来拯救你的. 第一步:打开命令行,敲入 comp ...
 - 面向对象DAO模式
			
DAO模式编写数据访问层代码步骤? 1. 接口 增.删.改.查的方法 方法的返回类型为泛型集合 Int rows=select语句的条数 If(rows>0) 方法的返回类型为泛型集合 If( ...
 - 将本地项目部署到github远程仓库
			
近期写了一些项目,想把项目代码保存并分享出来,所以就想到了github. 下面就为大家介绍部署过程: 安装git客户端,请大家百度自行下载,这里就不做介绍了. 注册github账号,这个很简单,这里就 ...