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

1.什么是对象?什么是类?

对象:是特征与技能的结合体

类:是一系列对象相同的特征与技能的结合体

2.绑定方法的有什么特点

由对象来调用称之为对象的绑定方法,不同对象调用该绑定方法,则会将不停的对象传入该绑定方法中。

对象的绑定方法是由对象来调用的,特殊之处就是把对象当作第一个参数传入该方法中。

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

# 仿制英雄联盟英雄角色

# 锐雯
class Riven:
    camp='Noxus'
    def __init__(self,username,
                 aggressivity=54,
                 life_value=414,
                 money=1001,
                 armor=3):
        self.username=username
        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,username,
                 aggressivity=58,
                 life_value=455,
                 money=100,
                 armor=10):
        self.username=username
        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



# 对战
r1=Riven('锐雯')
g1=Garen('盖文')
b1=BlackCleaver()

print(r1.aggressivity,r1.life_value,r1.money)

if r1.money > b1.price:
    r1.b1=b1
    b1.update(r1)

while True:
    r1.attack(g1)
    g1.attack(r1)
    if r1.life_value <= 0:
        print(f'{r1.username}死亡')
        break

    if g1.life_value <= 0:
        print(f'{g1.username}死亡')
        break
原文地址:https://www.cnblogs.com/whkzm/p/11644575.html