import random
# 武器类
class Weapon:
def __init__(self, name="武器", damage=50):
self.__name = name
self.__damage = damage
def getName(self):
return self.__name
def getDamage(self):
return self.__damage
def setName(self, name):
self.__name = name
def setDamage(self, damage):
self.__damage = damage
# 装备类
class Equip:
def __init__(self, name, defense):
self.__name = name
self.__defense = defense
def getName(self):
return self.__name
def getDefense(self):
return self.__defense
def setName(self, name):
self.__name = name
def setDefense(self, defense):
self.__defense = defense
# 角色类
class Role:
# 带参构造方法
def __init__(self, name, health, damage):
self.__pos = random.randint(0, 100)
self.__name = name
self.__health = health
self.__damage = damage
# 设置位置、名字、血量、伤害及查看信息
def getPos(self):
return self.__pos
def getName(self):
return self.__name
def getHealth(self):
return self.__health
def getDamage(self):
return self.__damage
def setPos(self, pos):
self.__pos = pos
def setName(self, name):
self.__name = name
def setHealth(self, health):
self.__health = health
def setDamage(self, damage):
self.__damage = damage
def getWeapon(self, w):
self.__damage += w.getDamage()
print("%s使用武器:%s\t伤害变为:%d" % (self.__name, w.getName(), self.__damage))
def getEquip(self, e):
self.__health += e.getDefense()
print("%s穿上装备:%s\t血量变为:%d" % (self.__name, e.getName(), self.__health))
# 动作类
class Action:
def move(self, r, stepLength):
r.setPos(r.getPos() + stepLength)
print("%s向前移动了%d的距离,当前位置为:%d" % (r.getName(), stepLength, r.getPos()))
def fight(self, a, b):
b.setHealth(b.getHealth() - a.getDamage())
print("%s向%s发起了进攻 %s血量-%d,剩余血量:%d" % (a.getName(), b.getName(), b.getName(), a.getDamage(), b.getHealth()))
# 生成角色、武器、装备、动作对象
monkey = Role("孙悟空", 1000, 60)
ox = Role("牛魔王", 5000, 30)
monkeyWeapen = Weapon("如意金箍棒", 600)
oxWeapen = Weapon("混铁棍", 300)
headEquip = Equip("凤尾紫金冠", 600)
bodyEquip = Equip("锁子黄金甲", 1000)
footEquip = Equip("藕丝步云鞋", 400)
action = Action()
print("无可奈何的至尊宝最后戴上了金箍\n失去了他最爱的人他成为了最强\n英雄归来,悟空展开了与牛魔王的绝世之战")
print("场景:夜晚小镇")
# 牛魔王穿武器装备
ox.getWeapon(oxWeapen)
ox.getEquip(headEquip)
ox.getEquip(bodyEquip)
ox.getEquip(footEquip)
# 回合计算器
count = 1
while True:
print("\n第" + str(count) + "回合!")
count += 1
if abs(ox.getPos() - monkey.getPos()) <= 15:
print("进入攻击范围!")
print("输入ls查看当前距离及信息\n输入move进行移动\n输入arm穿武器及装备\n输入a进行攻击")
option = input("\n请输入选项:")
if option == "ls":
print("\n角色名\t血量\t离对手距离\t攻击伤害")
print("%s\t%d\t\t%d\t\t %d" % (
monkey.getName(), monkey.getHealth(), (monkey.getPos() - ox.getPos()), monkey.getDamage()))
elif option == "move":
stepLength = int(input("\n请输入移动的距离,可以为负:"))
action.move(monkey, stepLength)
elif option == "arm":
# 孙悟空穿武器装备
monkey.getWeapon(monkeyWeapen)
monkey.getEquip(headEquip)
monkey.getEquip(bodyEquip)
monkey.getEquip(footEquip)
elif option == "a":
if abs(ox.getPos() - monkey.getPos()) <= 15:
action.fight(monkey, ox)
action.fight(ox, monkey)
else:
print("超出攻击距离")
else:
print("输入错误!")
if monkey.getHealth() <= 0 and ox.getHealth() > 0:
print("\n牛魔王战胜了孙悟空\n牛魔王:西天势力就如同天庭一样将自己奉为神灵,却从未考虑过人间疾苦")
print("牛魔王:千百年来,我们苦心修炼,探寻着生命的最终奥秘,成果却被他们窃取;我挚亲挚信的兄弟,一个个却被他们蒙骗,现在来与我反戈")
print("扛起伤痕累累的悟空,牛魔王说道:这一次,我们不再被动挨打,这一次,我们主动出击,兽人永不为奴!")
break
elif monkey.getHealth() > 0 and ox.getHealth() <= 0:
print("\n孙悟空战胜了牛魔王")
print("悟空护送唐僧,穿过古镇门口,踏上了西天取经之路。。。")
print("古镇城门上,经过一番决斗的至尊宝最终抱起紫霞仙子,开心的笑着")
print("而紫霞仙子,看着穿个城门的悟空喃喃道:你看那个人好像一条狗!。。。。。。")
print("苦海 泛起爱恨\r\n" + "在世间 难逃避命运\r\n" + "相亲 竟不可接近\r\n" + "或我应该相信是缘分")
break
elif monkey.getHealth() == 0 and ox.getHealth() == 0:
print("\n本是同根生,相煎何太急...观世音在远远的云端喃喃道\n观世音:报告佛祖任务完成,孙悟空和牛魔王在我的挑拨下已经相杀而亡,距离我教一通中原指日可待")
break
print("游戏结束!")