我想我的问题中的所有术语都是正确的……但我不确定。基本上我想做的是在文本游戏中获取我的库存和设备设置的小细节。
我想要做的是拥有一把武器,让我们带着一把剑去吧,我希望它能够改变角色本身的某些方面。让角色的 hp 增加 ...5,在这种情况下我会拥有的是,(不要介意马虎的工作!)
global basehp
basehp = 10
global armorhp
armorhp = 0
global skillhp
skillhp = 0
global hpmod
hpmod = (skillhp + armorhp)
global righthand
righthand = 0
所以用 hp 设置示例这是我在程序中实际拥有的,现在我想做的是更改 armourhp 以匹配盔甲将其更改为的内容,比如我的剑可以为我的 hp 增加 5 对吗?我现在正在使用的东西是行不通的,起初我以为只是装备它并为装甲加5,然后我开始考虑取消装备它...效果会一样...我会告诉你什么我的意思是
def hpsword:
armorhp = (armorhp + 5)
def prompt():
x = raw_input("Type command>>")
if x == 'equip':
print "equip what?"
print inventory
y = raw_input(">>>>")
if y == 'sword':
if 'hpsword' in inventory:
global righthand
righthand = 1
inventory.remove ('hpsword')
equipmentlist.append ('hpsword')
现在从这里你会注意到我遗漏了一些东西,比如我的清单,我正在处理,但这是我可以真正解释更多我的意思的地方,我想像这样使用每个项目,但我可以'不知道如何......我很困惑我知道,我有很多想法,但我想做一些类似......
def this sword():
this sword does this thing!
然后当它被装备时添加它的效果,例如 +5 生命值,然后移除它并使用它的效果,而不必用一堆语句做 100 行代码哦添加这个效果但是当你不想再使用它,将右手重置为 0,然后如果是这个数字,则在将其更改为数字 2 并再添加 10 之前,从那个数字中取走这么多。
我也试图避免装备剑,获得5生命值,不装备,仍然是5?好,装备,耶 10 !
如果我有任何意义,我会感到震惊......但如果有人能弄清楚我的意思并给我一些建议,那就太好了!
编辑:
阅读评论中留下的内容,(感谢那个 Eevee!)我想我开始对课程有所了解......非常少。
那么新的问题,然后我会为主角上课吗,比如,
class character(object):
然后在初始化中添加
def __init__(self)
那么我会定义库存吗,
def __init__(self)
def inventory
还是我会这样做,
def __init__(self, inventory)
抱歉,如果我问了太多问题,只是想弄清楚它,我注意到这里的人足够好,至少可以看看像我这样的想成为程序员的问题:D
另一个编辑!!!!
再次感谢一吨伊布!这是有道理的,尽管通读它,我仍然对如何将它添加到我的代码以及我需要为一些不同的项目更改什么感到有些困惑。
尝试解释一些,当我说不同的项目时,你给了我
class Sword(object):
def visit_health_bonus(self, character):
return 5
如果我想要一把能做不同事情的剑,我会创建一个不同名称的新类,但基本上是一样的吗?
class Sword2(object):
def visit_strength_bonus(self, character):
return 2
那会给我一把剑,可以让我的力量增加2,对吧?
现在谈谈我的另一个问题,当我尝试使用它时,我真正需要什么才能让它正常工作,我看到很多我认为如果没有其他一些东西就不会运行的东西
class Sword(object):
def visit_health_bonus(self, character):
return 5
# Then, every turn, recalculate health:
health = player.base_health
for equipment in player.equipment: //would i need another class here? (player)
# Pretend this lists everything the player has equipped; you might
# have to check each hand manually
health += equipment.visit_health_bonus(player) //also going to think a class (equipment)