python反恐精英

LS2223488956發表於2021-01-04

class Player(object):
“”“玩家類”""

def __init__(self, name, hp=100): 
    """初始化玩家屬性""" 
    self.name = name  # 名字 
    self.hp = hp  # 血量 
    self.gun = None  # 槍 


def __str__(self): 
    """返回玩家描述資訊""" 
    if self.hp <= 0: 
        return '%s 已經死翹翹了' % (self.name) 


    if not self.gun: 
        return '%s 剩餘血量為 %d,目前沒槍' % (self.name, self.hp) 


    return '%s 剩餘血量為 %d, 使用的槍為 %s' % (self.name, self.hp, self.gun) 


def take_gun(self, gun): 
    """撿槍""" 
    self.gun = gun 


def fire(self, enemy): 
    """開槍射擊敵人""" 
    if not self.gun: 
        print('沒有槍,無法射擊') 
        return 


    self.gun.shoot(enemy) 


def hurt(self, damage): 
    """玩家受到傷害,需要扣血""" 
    self.hp -= damage 
    print('%s 受到 %d 點傷害,剩餘血量為 %d' % (self.name, damage, self.hp)) 

class Gun(object):
“”“槍類”""

def __init__(self, model, damage): 
    """初始化槍的屬性""" 
    self.model = model  # 型號 
    self.damage = damage  # 殺傷力 
    self.bullet_count = 0  # 子彈數量 


def __str__(self): 
    """返回槍的描述資訊""" 
    return '%s 殺傷力是 %d, 剩餘子彈為 %d 顆' % (self.model, self.damage, self.bullet_count) 


def add_bullet(self, count): 
    """新增子彈""" 
    self.bullet_count += count 


def shoot(self, enemy): 
    """射擊敵人,造成傷害""" 
    # 沒有子彈則不能繼續射擊 
    if self.bullet_count <= 0: 
        print('沒有子彈了,無法射擊~') 
        return  # return 後什麼都不寫,一般用於終止函式 


    # 射擊並造成傷害 
    self.bullet_count -= 1 
    if enemy: 
        # print('%s 射擊  %s, 造成 %d 傷害' % (self.model, enemy, self.damage)) 
        enemy.hurt(self.damage) 
    else: 
        print('沒有敵人,打空了~') 

def test():
“”“測試函式”""
# 槍類的測試
# 建立槍
ak47 = Gun(‘ak47’, 99)
print(ak47)

# 新增子彈 
ak47.add_bullet(2) 
print(ak47) 


# 射擊敵人 
# ak47.shoot(None) 
# print(ak47) 
# ak47.shoot('張三丰') 
# print(ak47) 
# ak47.shoot('張三丰') 
# print(ak47) 


print('------------------槍類測試結束-----------------') 


# 玩家測試 
police = Player('警察', 150) 
print(police) 
badman = Player('土匪') 
print(badman) 


# 玩家撿槍 
police.take_gun(ak47) 
print(police) 


# 玩家射擊 
police.fire(badman) 
print(badman) 
police.fire(badman) 
print(badman) 
police.fire(badman) 
print(badman) 

def main():
“”“遊戲主邏輯”""
# 建立兩個玩家
police = Player(‘警察’)
badman = Player(‘土匪’)
print(police)
print(badman)

# 建立槍 
k98 = Gun('98k', 70) 
k98.add_bullet(2) 


# 玩家拿槍 
badman.take_gun(k98) 
print(badman) 


# 開槍射擊 
badman.fire(police) 
badman.fire(police) 
print(police) 
badman.fire(police) 

相關文章