1

ファイルモジュールの関数を呼び出すメインプログラムでテキストベースのゲームのコーディングを開始しました。

ファイルモジュールと関数が呼び出され、関数 (モジュール内) が Main() プログラム (グローバル変数) にリストを追加する必要がある特定のケースがあります。

問題は、それを追加できないことです。

つまり、より具体的には、ゲームではプレイヤーが部屋 (RoomA2) に入り、オブジェクト (剣) があります。プレイヤーはそれを拾い上げ (関数で object_room_a2 というリストから削除する必要があります)、剣をバッグに入れることができます。したがって、バッグは Main() プログラムのグローバル リスト (object_list と呼ばれます) です。

以下のコードを入力してください。助けてくれてありがとう!

object_list = []

def main():
    print('stuff.. What do you want to do? (1) do this; (2) do that')
    choice = int(input('Choice --> '))

    if choice == 1 :
        RoomA2.room_a2()
    elif choice == 2 :
        RoomB1.room_b1()

def room_a2():
    object_room_a2 = ['sword']
    print('stuff.. What do you want to do? (1) do this; (2) do that')
    choix = int(input('choix --> '))

    if choix == 1:
        object_room_a2.remove('sword')
        object_list.append('sword')

    if choix == 2:
        RoomA1.room_a1()
4

1 に答える 1

1

room_a2問題は、呼び出されるたびにobject_room_a2再初期化されるため、剣が再表示され続けることです。

一般に、これはあなたがやろうとしていることを行うための非常に複雑な方法です。プレーヤー オブジェクトとルーム オブジェクトのコレクションを使用すると、はるかに少ないコードで済みますが、初心者であり、最初にいくつかのルームをこの方法で動作させたいと思うかもしれません。

于 2012-11-19T20:35:11.480 に答える