0

ここで初めて。Pythonのネストされたリストについてアドバイスをお願いします。私は実際に python と pygame を使用して単純なグリッド ベースのゲームを作成しようとしています。リストのリストを使用して、char が移動しているマップを保持したいと考えています。ここに私の地図があります:

basic_map=[['NW',1,1,1,'NE'],
           [1,0,0,0,1],
           [1,0,0,0,1],
           [1,0,0,0,1],
           ['SW',1,1,1,'SE']]

それぞれに方向がある正方形の四隅。次に、ネストされた for を使用してマップを描画します。

for x in range (5):
        for y in range (5):
            str3=str(basic_map[x][y])  
            text3=font.render(str3,True,white)
            screen.blit(text3,(100+40*x,100+40*y))

ここで問題を開始します。マップが反転した行と列で表示される理由がわかりません。表示時に x と y を反転するという解決策がありますが、北 (x=0,y=-1) が東として動作するため、移動はうまくいきません。

なぜ私はこの基本的なことで 1 週間も立ち往生しているのか理解できません。私はインターネットで多くのことを検索し、IRC を通じても尋ねましたが、幸運ではありませんでした。

私はすぐに使用できるコードを求めませんが、私の過ちを理解するための簡単な説明を求めます.私は英語のネイティブではないので、私が言っていることを理解してくれることを願っています.

事前に感謝

4

2 に答える 2

0

たとえば、多次元リストにアクセスする場合、 indeces に使用する 2 つの整数があります[x][y]。あなたの場合、最初の括弧に x を入れています。これは、外側のリストの内側にある x 番目のリストのゲッターです。これは、基本的に、リスト内の各項目がマップ内の行であり、各行が列全体の要素で構成されるリストで設定したマップのためです。ROW リスト内の項目にアクセスするには、x 次元変数を使用する必要があります。次のようにマップを設定してみてください。

basic_map = [['NW',1,1,1'SW'],
             [1,0,0,0,1],
             [1,0,0,0,1],
             [1,0,0,0,1],
             ['NE',1,1,1,'SE']]

直感に反するように思えるかもしれませんが、必要に応じてより直感的にマップ上のグリッドにアクセスできます。

于 2013-07-26T23:07:52.870 に答える
0

これを実行すると、この出力が得られます

ここに画像の説明を入力

だからあなたができることは、それが機能するようにNEと を切り替えるだけですSW

次のようになります。

ここに画像の説明を入力

これが機能する理由を確認するには、0マップ リストに を追加して、次のようにします。

self.basic_map=[['NW',1,0,1,'SW'],
           [1,0,0,0,1],
           [1,0,0,0,1],
           [1,0,0,0,1],
           ['NE',1,0,1,'SE']]

これを実行すると、次のように出力されます。

ここに画像の説明を入力

0上と下の行にsを入れても、プログラムは横にsを入れる0ので、基本的にあなたの地図を取り、それを回転させて水平の行が垂直の列になるようにします

この助けを願っています:)

于 2013-07-26T23:18:55.913 に答える