zoukankan      html  css  js  c++  java
  • 理解面向对象编写的极致简单的小代码

    # cheer_xiong
    # (`・ω・´) python
    
    # 对战类游戏
    import random
    import time
    
    
    
    class ShadowDominates:  # 影流之主
        camp = 'Shadow_Isles'  # 暗影岛
    
        def __init__(self, name, ad=40, hp=450):
            self.name = name  # 名字
            self.ad = ad  # 攻击力
            self.hp = hp  # 血量
    
        def Q(self, Hero):  # Q技能 影奥义!诸刃
            hit_rate = random.randint(0, 100)
            if hit_rate >= 0 and hit_rate <= 80:
                Hero.hp -= self.ad
                print(f"{self.name}使用劫Q中了对面的{Hero.name}使用的亚索!")
            else:
                print(f'{Hero.name}的亚索通过走位躲开了Q技能')
    
        def W(self):  # W技能 影奥义!分身
            print("劫使用w往后撤退了,这无疑是给亚索机会呀")
    
        def E(self, Hero):  # E技能 影奥义!鬼斩
            Hero.hp -= self.ad
            print(f"{self.name}使用劫E中了对面的{Hero.name}使用的亚索!")
    
        def R(self, Hero):  # R技能 禁奥义!瞬狱影杀阵
            Hero.hp -= self.ad * 2
            print(f"{self.name}使用劫的最终奥义-瞬狱影杀阵-。效果十分显著!")
    
    
    class HurricaneSwordsman:  # 疾风剑豪
        camp = 'Lone_Ranger'  # 独行侠
    
        def __init__(self, name, ad=22, hp=500):
            self.name = name  # 名字
            self.ad = ad  # 攻击力
            self.hp = hp  # 血量
    
        def Q(self, Hero):  # Q技能 斩钢闪
            hit_rate = random.randint(0, 100)
            if hit_rate >= 0 and hit_rate <= 80:
                Hero.hp -= self.ad
                print(f"{self.name}使用亚索Q中了对面的{Hero.name}使用的劫!")
            else:
                print(f'{Hero.name}的劫通过走位躲开了Q技能')
    
        def W(self):  # W技能 风墙
            print("亚索使用了风墙,太强了!")
    
        def E(self, Hero):  # E技能 踏浪斩
            Hero.hp -= self.ad
            print(f"{self.name}使用亚索踩在了对面的{Hero.name}使用的劫的脸上!")
    
        def R(self, Hero):  # R技能 狂风绝息斩
            Hero.hp -= self.ad * 2
            print(f"{self.name}瞬间击飞劫,接上-狂风绝息斩-!")
    
    
    class Equipment:
        def BF_sword(self, hero):  # 暴风大剑
            hero.ad += 30
    
    
    player1 = ShadowDominates('Faker')
    player2 = HurricaneSwordsman('xiong_chao')
    ZB = Equipment()
    ZB.BF_sword(player2)  #疾风剑豪装备了bf大剑
    print(f"疾风剑豪装备了bf大剑,攻击力为:{player2.ad}")
    
    while True:
        if player2.hp < 0:
            print(f"{player2.name}的血量{player2.hp}")
            print(f"{player1.name}的劫击败了{player2.name}")
            break
        if player1.hp < 0:
            print(f"{player1.name}的血量{player1.hp}")
            print(f"{player2.name}的亚索击败了{player1.name}")
    
            break
        choose_who = random.randint(0, 7)
        time.sleep(0.5)
        if choose_who == 0:
            player1.Q(player2)
            print(f"{player2.name}的血量{player2.hp}")
        if choose_who == 1:
            player1.W()
            print(f"{player2.name}的血量{player2.hp}")
        if choose_who == 2:
            player1.E(player2)
            print(f"{player2.name}的血量{player2.hp}")
        if choose_who == 3:
            player1.R(player2)
            print(f"{player2.name}的血量{player2.hp}")
        if choose_who == 4:
            player2.Q(player1)
            print(f"{player1.name}的血量{player1.hp}")
        if choose_who == 5:
            player2.W()
            print(f"{player1.name}的血量{player1.hp}")
        if choose_who == 6:
            player2.E(player1)
            print(f"{player1.name}的血量{player1.hp}")
        if choose_who == 7:
            player2.R(player1)
            print(f"{player1.name}的血量{player1.hp}")
    
    
  • 相关阅读:
    Java 抽象类
    Java 多态
    Java 重写与重载
    Java继承
    声卡驱动
    Sublime Text 3快捷键
    近年来世界各地ICO的花式骗局盘点
    区块链未能大爆发的影响因素有哪些?
    BCH分叉是一次站队博弈
    一文读懂百倍币的诞生背景
  • 原文地址:https://www.cnblogs.com/xiongchao0823/p/11413485.html
Copyright © 2011-2022 走看看