面向对象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

# ---------------------------------------------------------------------------------------------------------
# ---------------------------------------------------------------------------------------------------------
‘‘‘

原文地址:https://www.cnblogs.com/max404/p/10743694.html

时间: 2024-11-09 02:52:40

面向对象text 01 盖伦vs瑞文vs提莫的相关文章

HTML 4.01 规定了三种文档类型

HTML 4.01 规定了三种文档类型:Strict.Transitional 以及 Frameset. 严格的——该 DTD 包含所有 HTML 元素和属性,但不包括展示性的和弃用的元素(比如 font).不允许框架集(Framesets). <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> 过渡的——该 DTD 包含所有

C#面向对象基础01

面向对象不是取代面向过程的类.对象."人"是类,"张三"是人这个类的对象.类是抽象的,对象是具体的.按钮就是类,某个按钮就是对象.对象可以叫做类的实例.类就像int,对象就像10.字段field(和某个对象相关的变量),字段就是类的状态.人这个 类有姓名.年龄.身高等字段.类不占内存,对象才占内存.方法:方法就是累能够执行的动作,比如问好.吃饭等.类的继承,类之间可以有继承关系,比如电脑类可以从"电器"类继承,这样的好处是"电脑&quo

Unity 2D打造《盖伦快跑》横版跑酷ARPG

unity是一个灵活且高性能的开发平台,用于制作富有创意的3D和2D智能互动游戏.以其"一次创作,多平台部署"的性能使开发者们能够将内容发布到所有最热门的平台. 随着3D游戏市场的高速发展,2D游戏以其易开发.制作快的特性也得到了开发者的热爱.越来越多的Unity 2D游戏涌现,让我们来盘点一下那些虽然是2D制作但不妨非常精美的游戏佳作吧! 由Mobius精心打造的手游<盖伦快跑>是一款拥有便捷操作.简单快节奏.以及半像素精美画面的横版跑酷类的ARPG游戏,配合动感激烈的背

面向对象OOP 01

<meta charset ="utf-8" /> <?php /* 1.什么是面向对象编程 OOP: (Object Oriented Programming,OOP,面向对象程序设计) 是一种计算机编程架构.OOP 的一条基本原则是计算机程序是由单个能够起到子程序作用 的单元或对象组合而成.OOP 达到了软件工程的三个主要目标:重用性.灵活性和扩展性. 面向对象三大特性 1. 封装性:对象的功能或者属性,用户可用使用,但是具体的代码用户是看不到 2. 继承性:就是

面向对象语法-01

面向对象和面向过程思想 OC是面向对象的,C是面向过程的.面向对象和面向过程只是解决问题的两种不同思想 面向对象和面向过程的区别 以用电脑听歌为例子 面向过程 打开电脑 播放电脑中的歌曲 关闭电脑 面向对象(不是相亲的“对象”) 电脑 开机 播放歌曲 关机 区别分析 面向过程关注的是解决问题需要哪些步骤:面向对象关注的是解决问题需要哪些对象 没有开发经验很难感受到它们的区别,两种思想都能达到解决问题的目的,但是解决思路不一样 现实生活中面向对象的例子 想打电话\发短信 ? 找手机,不用分析电话要

面向对象编程01

俗话说:"物以类聚,人以群分",那么这里的"类"实际上就是指的同一类事物,同理在python中,我们也有类的概念,类的概念和我们这里所讲的"物以类聚"中的类的含义是一样的,都是同一类事物的统称,这就是类的概念! 那么为什么要有类呢? 1.我们知道python是面向函数编程和面向对象编程的,那么什么是面向函数编程?什么又是面向对象编程呢?  实际上面向函数编程就是将函数作为一个事物传来传去,面向对象就是将一个对象传来传去(类是模板[一类事物的统称]

php面向对象思想-01

关于面向对象的思想 $this 的用法 使用this关键字 谁调用就是谁 1.const:类成员变量定义,一旦定义且不能改变其值.   define:定义全局常量,在任何地方都可以访问. 2.define:不能在类中定义,而const可以. 3.const:不能在条件语句中定义常量. 4.const:采用一个普通的常量名称,define可以采用表达式作为名称. 5.const:只能接受静态的标量,而define可以采用任何表达式. 6.const:大小写敏感. 原文地址:http://blog.

面向对象回顾01

面向对象初识 1.函数式编程 对 面向过程编程的两个特点 减少代码的重复性 增强代码的可读性 2.面向对象编程 对 面向过程编程 2.1 什么是面向对象 ? 面向对象的程序设计的核心是对象(上帝式思维),要理解对象为何物,必须把自己当成上帝,上帝眼里世间存在的万物皆为对象,不存在的也可以创造出来. 2.2 什么是类,什么是对象 ? 类:就是具有相同属性和功能的一类事物. ? 对象:就是类的具体表现. 3.类的结构 class Human: """ 此类主要是构建人类 &quo

20180724 (面向对象:类的命名空间和查询顺序丶组合)

一.类的名称空间 类名()  产生了一个含有对象指针的空间 先执行代码 从上向下执行 首先执行到class的时候,创建了一个Person类的空间,其中有静态变量和方法以及方法的内存地址 之后执行到p1 = Person()的时候,又创建了一个p1的实例空间,当还没读到括号里面的参数的时候,此时该实例空间里只有一个指示牌是指向Person类空间的 当执行到括号里面的内容的时候,此时实例空间里多了country = "菲律宾",name = "alex",age = 4