0

だから私はずっと前に作った卓上ゲームをコーディングしようとしていました-私は今グラフィックセクションに取り組んでおり、ネストされたForループを使用して9x7タイルマップを描画しようとしています:

2D配列にnumpyライブラリを使用しています

gameboard = array( [[8, 8, 8, 7, 7, 7, 8, 8, 8],
                [8, 3, 6, 7, 7, 7, 6, 3, 8],
                [0, 1, 1, 6, 6, 6, 1, 1, 0],
                [0, 5, 4, 0, 0, 0, 4, 5, 0],
                [0, 3, 2, 0, 0, 0, 2, 3, 0],
                [8, 8, 1, 0, 0, 0, 1, 8, 8],
                [8, 8, 8, 6, 6, 6, 8, 8, 8]] )
def mapdraw():
for x in [0, 1, 2, 3, 4, 5, 6, 7, 8]:
    for y in [0, 1, 2, 3, 4, 5, 6]:
        if gameboard[(x, y)] == 1:
            #insert tile 1 at location
        elif gameboard[(x, y)] == 2:
            #insert tile 2 at location
        elif gameboard[(x, y)] == 3:
            #insert tile 3 at location
                    #this continues for all 8 tiles
                    #graphics update

このプログラムを実行すると、「if gameboard [(x、y)] == 1:」「IndexError:index(7)out of range(0 <= index <7)indimension0」という行でエラーが発生します。

私はこのエラーが何を意味するのかを見つけるために何時間も探し、それを修正するために多くの異なる方法を試しました:どんな助けもいただければ幸いです。

4

1 に答える 1

2

[y,x]最初の座標は行インデックス(あなたにとってはインデックス)であるため、を使用して配列にインデックスを付ける必要がありyます。

余談ですが、明示的なリストではなく、繰り返してください。range

for x in range(9):
    for y in range(7):
        if gameboard[y, x] == 1:
            #insert tile 1 at location
        ...
于 2012-10-21T01:50:27.677 に答える