Python面向对象游戏--人狗大战

# 项目实训  人狗大战
# 多个人 多条狗 多个属性 名字 种类 攻击力 生命力进行设值
# 先创狗
#数据太多了 依次复制太过复杂 这时候就可以写一个def然后整体调用更改数据即可

attack_vals={
    "哈士奇":5,
    "金毛":10,
    "藏獒":40
}

def person(name,age):
    data={
        "name":name,
        "age":age,
        "d_type":"人类",
        "life_val":999999999,
    }
    if age>18:
        data["attack_val"]=500#添加值进字典
    else:
        data["attack_val"]=300
    return data
x1=person("雷云腾",19)
x2=person("杜俊枫",17)


def dog_bite(dog_obj,person_obj):
    person_obj['life_val']-=dog_obj['attack_val']#执行咬人的动作
    print("狗[%s]咬了人[%s]一口,人掉血[%s],还剩下[%s]血量...." %(dog_obj['name'],person_obj["name"],dog_obj['attack_val'],person_obj['life_val']))

def person_beat(person_obj,dog_obj):
    dog_obj['life_val']-=person_obj['attack_val']
    print("人[%s]暴打一只小狗狗[%s]一棒,小狗掉血[%s],还剩下[%s]血量....."%(person_obj['name'],dog_obj['name'],person_obj['attack_val'],dog_obj['life_val']))


def dog(name,d_type):
    Data = {
        "name": name,#传参
        "d_type": d_type,
        "attack_val":30,
        "life_val":100
    }
    if d_type in attack_vals:
        Data["attack_val"]=attack_vals[d_type]
    else:
        Data["attack_val"]=12

    return Data

d1=dog("余星舟","哈士奇")#赋值
d2=dog("张力文","金毛")
d3=dog("刘江","藏獒")
d4=dog("李盟原","边牧")
d5=dog("肖瑞丰","香肠狗")
d6=dog("李锐鑫","西伯利亚犬")
dog_bite(d1,x1)
dog_bite(d2,x1)
dog_bite(d3,x2)
dog_bite(d5,x2)
dog_bite(d6,x1)
person_beat(x1,d1)
person_beat(x1,d2)
person_beat(x1,d4)
person_beat(x2,d3)
person_beat(x2,d5)

Python面向对象游戏--人狗大战_第1张图片

Python面向对象游戏--人狗大战_第2张图片
Python面向对象游戏--人狗大战_第3张图片
Python面向对象游戏--人狗大战_第4张图片

你可能感兴趣的:(python,python,游戏,开发语言)