-2

テキストベースのゲームを作成していますが、リストの追加で問題が発生しています。

実行できる開始コマンドはリストにあります。

room1_commands = ['help', 'look']

彼らが「look」コマンドを使用すると、これが起動します。

if ask == 'look':
    print ('You see a fireplace.')
    room1_commands.append('fireplace')

私の知る限り、コマンドのリストに暖炉を追加する必要がありますが、そうではありません。

付け足すと気づいたのですが…

print (room1_commands)

追加の直後に追加されたことが示されますが、インデントしないとifステートメント内に収まらず、「h​​elp」と「look」のみが出力されます

これはステートメント全体です (コマンド リストを出力するヘルプ ステートメントを含む)。

def room1():
    ask = input()

    room1_commands = ['help', 'look']

    if ask == 'help':
        print ('Usable Commands')
        print (room1_commands)
        room1()

    elif ask == 'look':
        print ('You see a fireplace')
        room1_commands.append('fireplace')
        room1()
4

1 に答える 1

1

room1これは再帰関数であり、呼び出されるたびに再度room1_commands設定さ['help', 'look']れます。room1_commands = ['help', 'look']これを修正するには、次のように関数の外に移動する必要があります。

room1_commands = ['help', 'look']

def room1():
    ask = input()

    if ask == 'help':
        print ('Usable Commands')
        print (room1_commands)
        room1()

    elif ask == 'look':
        print ('You see a fireplace')
        room1_commands.append('fireplace')
        room1()
于 2013-11-10T01:43:34.947 に答える