0

私はPythonが初めてです。Piの何かを待っている間、Windowsで実行しています。ユーザーがテキスト入力を介してタワーを移動するゲームを書いています。

ユーザーは "a" "d" "w" を使用して部屋を見回し、物を集めることができます。しかし、ユーザーがすでに "a" ("look left") を見ている場合は、既にそこにいることを知らせる必要があります。これは私のコードですが、明らかな欠陥があります。

#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()

「左」を静的に設定できますか? アリはそれを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 に答える