• 类与对象


    '''
    1.什么是对象?什么是类?
    对象是特征与技能的结合体,类是一系列的对象相同的特征与技能的结合体

    2.绑定方法的有什么特点
    由对象来调用的,会把对象当作第一个参数传入该方法中,由不同的对象来调用,就会把不同的对象给不同的绑定方法

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

    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就死了 
    

    '''

  • 相关阅读:
    iptables
    vsftpd安装
    完整java开发中JDBC连接数据库代码和步骤
    java中使用队列:java.util.Queue
    程序中遇到重点问题
    在JSP页面中用select下拉列表来显示List列表的方式
    java.lang.String cannot be cast to [Ljava.lang.Object;
    java虚拟机的内存设置
    网络协议都有哪些
    使用java技术将Excel表格内容导入mysql数据库
  • 原文地址:https://www.cnblogs.com/jinhongquan/p/11642408.html
Copyright © 2020-2023  润新知