zoukankan      html  css  js  c++  java
  • 人狗大战的游戏实现

    #实现人狗大战
    class Dog:
    def __init__(self,*args):
    self.name=args[0]
    self.age=args[1]
    self.blood=args[2]#血量
    self.king=args[3]#攻击力

    def yaoni(self,person): #狗的方法:咬人
    #狗咬人 人掉血
    # Person.blood-=dog.gking
    person.blood -= self.king

    class Person:
    def __init__(self,*args):
    self.name=args[0]
    self.age=args[1]
    self.blood=args[2]#血量
    self.king=args[3]#攻击力
    self.money = args[4]
    def dagao(self,dog):#人的方法:打狗
    dog.blood-=self.king#人打狗 狗掉血

    def get_weapon(self,weapon):# 人的方法: 给人装备‘打狗棒’
    if self.money>=weapon.price:
    self.money-=weapon.price
    self.weapon=weapon
    #装备上武器中后血量增加
    self.blood+=weapon.blood #自己的血量加上武器的血量
    else:
    print('余额不足请充值')

    class Weapon: #装备类
    def __init__(self,name,blood,njd,price):
    self.name=name
    self.blood=blood
    self.njd=njd #装备的耐久度 和血量差不多
    self.price=price#装备的价格
    #给装备设计一个大招 加一个方法
    def hand(self,person): #这个装备可以攻击一个人
    if self.njd >0:
    person.blood-=self.blood*2 #可以掉双倍的血量
    self.njd-=1 #狗的耐久度减一


    alex=Person('alex',11,2000,200,300) #实例化一个人
    jin=Dog('金老板',543,1000,100) #实例化一个狗
    w=Weapon('打狗棒',100,3,998)
    #怎样给Alex装备打狗棒
    alex.money+=5415
    alex.get_weapon(w)
    print(alex.weapon)
    print(alex.blood)
    alex.dagao(jin)#alx开始打狗了 调用了person中的dagou方法
    print(jin.blood)#查看一下狗的血量
    alex.weapon.hand(jin)#alex有一个weap属性 是另外一个类的对象 alex使用装备中的大招开始打狗
    print(jin.blood)
    #******该游戏中涉及到了一个面向对象的知识点 组合:一个对象的属性是另一个类的对象 alex.weapon是weapon类的对象
  • 相关阅读:
    Java实现热替换
    SQL判断字符串里不包含字母
    Useful bat command
    Entity FrameworkCore教程(一):包概念理解
    Docker:Docker常见命令
    ASP.NET Core:ASP.NET Core程序使用Docker部署
    ASP.NET Core:中间件
    ASP.NET Core:依赖注入
    Jenkins:创建定时构建任务
    ASP.NET Core 3.1使用Swagger
  • 原文地址:https://www.cnblogs.com/lxx99/p/11803315.html
Copyright © 2011-2022 走看看