Python 3.3 - 游戏 - 提示系统

标签 python

我想让它根据玩家在游戏中的位置打印不同的提示。我尝试通过每次玩家去某个地方时设置“提示”的值来实现。显然我遇到了一个缺陷(因为我在这里)。 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/

相关文章:

python - 如何在 Jupyter Notebook 中将 python 升级到 3.8?

python - sqlite3.操作错误: no such column - but I'm not asking for a column?

python - float 到 uint16 的转换会导致 numpy 中的数字增加吗?

python - Django 模板——嵌套包含在循环中

python - 可以从 python 代码生成序列图吗?

python - 从边缘图像中提取成分并存储以进行进一步处理

c++ - Boost.Python 找不到 pyconfig.h。它需要去哪里?

python - Django - 使用 F() 表达式但获取非原子更新

python - numpy 一次绘制几个伯努利分布

python - 在 Python 中以图形方式显示对象和引用