用python设计一个打怪掉血的小游戏

**

用python设计一个打怪掉血的小游戏

**
原代码:

-- coding:utf-8 --

@Time : 2019/9/10 19:28

@Author : Jiao Kai

@Email : [email protected]

import random

玩家类

class Player:
# 玩家需要三个属性:名字,血量,伤害
def init(self, name, hp, damage):
self.name = name
self.hp = hp
self.damage = damage

# 攻击方法
def attack(self, monster):
    monster.hurt(self)

# 挨打方法
def hurt(self, monster):
    self.hp -= monster.damage
    if self.hp > 0:
        print("{2}当前攻击造成的伤害为{3},"
              "{0}掉血量为{3},"
              "{0}剩余血量为{1}"
              .format(self.name, self.hp,
                      monster.name, monster.damage))
    else:
        self.hp = 0
        print("{2}当前攻击造成的伤害为{3},"
              "{0}掉血量为{3},"
              "{0}剩余血量为{1}"
              .format(self.name, self.hp,
                      monster.name, monster.damage))
        self.death()

# 死亡方法
def death(self):
    print("{}真菜,游戏失败".format(self.name))

野怪类

class Monster:
# 野怪需要三个属性:名字,血量,伤害
def init(self, name, hp, damage):
self.name = name
self.hp = hp
self.damage = damage

# 攻击方法
def attack(self, player):
    player.hurt(self)

# 挨打方法
def hurt(self, player):
    self.hp -= player.damage
    if self.hp > 0:
        print("{2}当前攻击造成的伤害为{3},"
              "{0}掉血量为{3},"
              "{0}剩余血量为{1}"
              .format(self.name, self.hp,
                      player.name, player.damage))
    else:
        self.hp = 0
        print("{2}当前攻击造成的伤害为{3},"
              "{0}掉血量为{3},"
              "{0}剩余血量为{1}"
              .format(self.name, self.hp,
                      player.name, player.damage))
        self.death()

# 死亡方法
def death(self):
    print("别想太多,主要是{}太简单,游戏胜利".format(self.name))

游戏开始,打印“游戏开始”

print(“游戏开始!”)
player = Player(“黑猫警长”, 2000, 200)
monster = Monster(“一只耳”, 3500, 30)

进入游戏回合(循环)

switch = True
while switch:
# 提示用户输入“p”,判断是否为“p”
p = input(“按下‘p’开始回合”)
if p == ‘p’:
# 利用循环随机次数(1-5)
for i in range(random.randrange(1, 6)):
# 玩家攻击野怪
player.attack(monster)
# 判断野怪是否死亡
if monster.hp <= 0:
# 随机掉落装备
r = random.randrange(0, 2)
if r:
print("{}掉落了另一只耳朵".format(monster.name))
# 跳出循环,打印“游戏胜利”
break

    if monster.hp <= 0:
        break

    # 利用循环随机次数(1-2)
    for i in range(random.randrange(1, 3)):
        # 野怪攻击玩家
        monster.attack(player)
        # 判断玩家是否死亡
        if player.hp <= 0:
            # 如果死亡,跳出循环,打印“游戏失败”
            break
    if player.hp <= 0:
        break

游戏结束

print(“游戏结束”)

你可能感兴趣的:(python)