定义全局变量以保存将由raw_input引用的值

2024-05-08 22:22:05 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在制作一个基于文本的RPG。有了这一点背景,我想制作一个法术的全局列表,然后定义当用户调用这些法术时要采取的特定操作。那么,如果我有一个全局法术列表,那么为这些法术指定特定动作的最佳方式是什么?这是一段代码,可以帮助您了解我的作战机制。例如,我需要允许用户调用“治疗”,然后让治疗拥有提高生命值的属性和冷却机制,例如“你必须等待5秒才能再次使用此法术”。定义这些属性的最佳方法是什么,并使这些属性是全局的,因此,它们可以通过每个作战功能引用,而无需重复属性

这是我代码的一部分,可能会澄清我的战斗机制。当玩家在原始输入“inp”下被提示输入法术名称,并输入治疗时,冷却效果会持续一定的时间,或者在战斗中持续一定的回合数,以及提高用户生命的能力。我终身使用的属性位于名为“user”的类和变量“health”下。所以user.health = 100是有效的

available_spells = ['heal', 'fireball']
equipped = {'Armor': 'Mage Robes',
          'Weapon': 'Wooden Staff',
          'Spells': ['heal', 'fireball']

print "Your available spell(s) is(are) '%s'. " % equipped["Spells"]
inp = raw_input("Type the name of a spell you want to use.: ").lower()
lst = [x for x in available_spells if x.startswith(inp)]
if len(lst) == 0:
    print "No such spell"
    print ' '
elif len(lst) == 1:
    spell = lst[0]
    print "You picked", spell
    #combat functions here
else:
    print "Which spell of", equipped["Spells"], "do you mean?"

Tags: 代码用户列表属性定义全局机制available