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...')
  • 相关阅读:
    好消息:Dubbo & Spring Boot要来了
    过年回家,程序猿最怕的5件事
    到底什么是分布式系统?
    SLA服务可用性4个9是什么意思?怎么达到?
    漏洞:会话固定攻击(session fixation attack)
    Mybatis传递多个参数的4种方式(干货)
    注意:阿里Druid连接池监控的两个坑
    消息中间件ActiveMQ、RabbitMQ、RocketMQ、ZeroMQ、Kafka如何选型?
    Java程序员必须掌握的常用Linux命令。
    编程词汇
  • 原文地址:https://www.cnblogs.com/xuewei95/p/14647864.html
Copyright © 2011-2022 走看看