我想让它根据玩家在游戏中的位置打印不同的提示。我尝试通过每次玩家去某个地方时设置“提示”的值来实现。显然我遇到了一个缺陷(因为我在这里)。 Hint = 1
的值在一个 def 中是第一个,我在编写帮助/提示 def 时无法调用它。我的可悲的例子:
def Room_Choice():
Hint = 1
(向下 60 行)
def Hint():
Choice = input("What would you like?\n")
if Choice == ("Hint"):
if Room_Choice(Hint = 1):
print_normal("blah blah blah\n")
else:
print_normal("HINT-ERROR!\n")
Help_Short()
显然,随着游戏的发展,越来越多的提示值将会被添加。 正如您所看到的,我对 Python 比较陌生,需要帮助。
最佳答案
您正在尝试达到函数作用域中存在的值,但您做错了(正如您在这里一样)。
将瞄准镜想象成装有单向镜子的盒子:当您在其中时,您可以看到盒子里的东西以及盒子外面的东西。但是你无法看到你不在的盒子里有什么。
这里,Hint存在于Room_Choice框中,但不存在于H...哦等等。
您也将您的函数称为 Hint !如果您想在名为 Hint 的函数中访问 Hint,而该函数内部没有定义 Hint,您可能会得到该函数。我们调用函数 DoHint()
所以你无法从 DoHint 中看到 Hint,因为它在另一个框中。你必须把它放在你能看到的地方(在rainboooow...抱歉)。 您可能希望将其放在模块级别(不在定义内),或者将其设为对象的属性(但您必须了解一些面向对象编程的知识)了解这一点)。
这确实是基本的编程技能,如果不知道您要做什么并向您展示我将如何做,我无法进一步解释,但我希望这有所帮助。
这一行还有一件事:if Room_Choice(Hint = 1):
,这里您尝试检查 Room_Choice 函数的结果是否为 Hint 参数的值为 1是真的。我不知道你想做什么,但是 Room_Choice 函数没有显示它可以处理任何参数(你应该得到一个错误),并且不会返回 bool 值(它将隐式返回 None,即评估为逻辑错误)。
关于Python 3.3 - 游戏 - 提示系统,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22263679/