0

我对 Python 很陌生。在我等待我的 Pi 的一些东西时在 Windows 上运行。我正在编写一个游戏,用户通过文本输入穿过塔。

用户可以使用“a”“d”“w”环顾房间以收集 sutff。但如果用户已经查看过“a”(即“向左看”),我需要让他们知道他们已经去过那里。这是我的代码,但它有一个明显的缺陷。

#if user hits 'a' they look left
def roomOneLeft():
    print '-- You search some loose rubble and find some cloth'
    return roomOneMoves()

#where the user selects a movement
def roomOneMoves():
    left = 0
    move = raw_input("")
    if left == 1:
        print 'you have already looked here'
        return roomOneMoves()

    if move == "a":
        left = left + 1
        roomOneLeft()

我可以将“左”设置为静态吗?和 ant 研究如何将它设置为像 java 一样的全局变量。这显然不起作用,因为当它返回时,它会将自己设置回 0。任何帮助将不胜感激!

4

2 回答 2

2

您可以将“左”定义为全局。像这样:

left = 0

#where the user selects a movement
def roomOneMoves():
    global left

    move = raw_input("")
    if left == 1:
        print 'you have already looked here'
        return roomOneMoves()

    if move == "a":
        left = left + 1
        roomOneLeft()
于 2013-01-04T05:45:52.193 回答
1

要使变量成为全局变量,请在模块范围内声明,然后在函数中更改它,请使用global关键字。

left = 0
def some_func()
    global left
    left = 1

这将允许您在函数内编辑全局变量。

为了解决您的static变量问题,我相信您不能在 python 中执行此操作。看到这个问题。

于 2013-01-04T05:46:37.580 回答