python文字游戏攻防_一个简单的孙悟空斗牛魔王的文字游戏

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("游戏结束!")

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值