zoukankan      html  css  js  c++  java
  • 基于面向对象设计一个对战小游戏

    class Ruiwen:
       '''瑞文英雄的初始属性及普攻方法'''
       def __init__(self, nickname,
                    gongjili = 54,
                    shengmingzhi = 414,
                    qian = 1000,
                    hujia = 3):
          self.nickname = nickname
          self.gongjili = gongjili
          self.shengmingzhi = shengmingzhi
          self.qian = qian
          self.hujia = hujia
    
       def pugong(self, other):
          last_gongjili = self.gongjili - other.hujia # 自身攻击力减去对方英雄的护甲
          other.shengmingzi -= last_gongjili # 对方生命值减去自身已经减去护甲的攻击力,即是一下普攻造成的伤害
    
    class Gailun:
       '''盖伦英雄的初始属性及普工方法'''
       def __init__(self, nickname,
                    gongjili = 44,
                    shengmingzhi = 614,
                    qian = 500,
                    hujia = 6):
          self.nickname = nickname
          self.gongjili = gongjili
          self.shengmingzhi = shengmingzhi
          self.qian = qian
          self.hujia = hujia
    
       def pugong(self, other1):
          last_gongjili = self.gongjili - other1.hujia # 同上
          other1.shengmingzhi -= last_gongjili # 同上
    
    class Zhuangbei:
       '''一件装备的初始属性及主动技能和改变英雄数据属性方法'''
       def __init__(self,
                    jiage=475,
                    gongjili=9,
                    shengmingzhi=100):
          self.jiage = jiage
          self.gongjili = gongjili
          self.shengmingzhi = shengmingzhi
    
       def update(self, obj):
          '''英雄对应的数据属性都要有增加,且金额需要扣减'''
          obj.qian -= self.jiage
          obj.gongjili += self.gongjili
          obj.shengmingzhi += self.shengmingzhi
    
       def fire(self, obj):
          '''主动技能,直接扣减生命值(无视护甲,可视为真实伤害)'''
          obj.shengmingzhi -= 1000
    
    r1 = ruiwen('瑞文')
    g1 = gailun('盖伦')
    z1 = zhuangbei()
    
    print(g1.qian, g1.gongjili, g1.shengmingzhi)
    
    if g1.qian >= z1.jiage:
       g1.z1 = z1 # 此步骤只是一个赋值,后续调用主动技能方法
       z1.update(g1)
    
    print(g1.qian, g1.gongjili, g1.shengmingzhi)
    
    print(r1.shengmingzhi)
    g1.pugong(r1) # 普通攻击
    print(r1.shengmingzhi)
    g1.z1.fire(r1) # 装备主动技能
    if r1.shengmingzhi <= 0:
       print('%s已将%s击杀' % (g1.nickname, r1.nickname))
    while True: print('studying...')
  • 相关阅读:
    linux磁盘挂载
    3个方法解决百度网盘限速 (2018-07-20)
    mysql状态分析之show global status
    Cgroups子系统介绍
    Go语言 关键字:defer
    Go语言 map的实现
    Go语言 基本类型
    MySQL 监控指标
    sshpass的使用方法
    C++11 std::ref使用场景
  • 原文地址:https://www.cnblogs.com/xuewei95/p/14647864.html
Copyright © 2011-2022 走看看