zoukankan      html  css  js  c++  java
  • 面向对象小练习

    基于面向对象设计一个对战游戏

    定义锐雯类:

    复制代码
    class Riven:
        camp='Noxus'
        def __init__(self,nickname,
                     aggressivity=54,
                     life_value=414,
                     money=1001,
                     armor=3):
            self.nickname=nickname
            self.aggressivity=aggressivity
            self.life_value=life_value
            self.money=money
            self.armor=armor
        def attack(self,enemy):
            damage_value=self.aggressivity-enemy.armor
            enemy.life_value-=damage_value
    复制代码

    定义盖文类:

    复制代码
    class Garen:
        camp='Demacia'
        def __init__(self,nickname,
                     aggressivity=58,
                     life_value=455,
                     money=100,
                     armor=10):
            self.nickname=nickname
            self.aggressivity=aggressivity
            self.life_value=life_value
            self.money=money
            self.armor=armor
        def attack(self,enemy):
            damage_value=self.aggressivity-enemy.armor
            enemy.life_value-=damage_value
    复制代码

    定义装备:

    复制代码
    class BlackCleaver:
        def __init__(self,price=475,aggrev=9,life_value=100):
            self.price=price
            self.aggrev=aggrev
            self.life_value=life_value
        def update(self,obj):
            obj.money-=self.price #减钱
            obj.aggressivity+=self.aggrev #加攻击
            obj.life_value+=self.life_value #加生命值
        def fire(self,obj): #这是该装备的主动技能,喷火,烧死对方
            obj.life_value-=1000 #假设火烧的攻击力是1000
    复制代码

    测试交互

    复制代码
    r1=Riven('草丛伦')
    g1=Garen('盖文')
    b1=BlackCleaver()
    
    print(r1.aggressivity,r1.life_value,r1.money) #r1的攻击力,生命值,护甲
    
    if r1.money > b1.price:
        r1.b1=b1
        b1.update(r1)
    
    
    print(r1.aggressivity,r1.life_value,r1.money) #r1的攻击力,生命值,护甲
    
    print(g1.life_value)
    r1.attack(g1) #普通攻击
    print(g1.life_value)
    r1.b1.fire(g1) #用装备攻击
    print(g1.life_value) #g1的生命值小于0就死了 
    复制代码

    按照这种思路一点一点的设计类和对象,最终你完全可以实现一个对战类游戏。

     
  • 相关阅读:
    二维数组实现八皇后问题
    解决Java接口内部类的main()方法无法打印输出的问题
    hbase shell 常见命令
    hbase-0.94 Java API
    JavaMail简单版实验测试
    经典KMP算法C++与Java实现代码
    Hadoop之倒排索引
    哈希哈希
    Servlet和JSP学习指导与实践(三):JSP助阵
    Servlet和JSP学习指导与实践(二):Session追踪
  • 原文地址:https://www.cnblogs.com/llhtjwq/p/8306482.html
Copyright © 2011-2022 走看看