-2

私は戦艦ゲームに取り組んでおり、この時点でゲーム用のグリッドを作成しました。「get_location」関数は for ループによって呼び出され、各船の場所をランダムに生成します。船を配置する前に選択した場所に船が収まるかどうかをテストする「if」ステートメントがあり、船をグリッドに配置する船の追加機能があります。しかし、AI が船を配置するとグリッドから外れて、「リスト インデックスが範囲外です」というエラーが表示されることがあります。

エラーが何を言っているのかはわかりますが、それを修正する方法がわかりません。この問題を解決する方法について、誰かが助けてくれることを願っています。問題を引き起こしているコードの一部は次のとおりです。

デフォルト get_location(インデックス) :

# Get the name and size from the lists using the index.
name = VESSEL_NAMES[index]
size = VESSEL_SIZES[index]

column = random.randint(0, GRID_WIDTH)
row = random.randint(0, GRID_HEIGHT)
direction = random.randint(H, V) # H=0, V=1 (global constants)
print()
if (direction == H and column + size > GRID_WIDTH) :
    get_location(index)
    print()
if (direction == V and row + size > GRID_HEIGHT) :
    get_location(index)
    print()
else :
    add_vessel(index, row, column, direction)

返信ありがとうございます。

4

1 に答える 1

0

ここで何かが足りないかもしれませんが、random.randint(0, GRID_WIDTH) が GRID_WIDTH を与える可能性はありませんか?

于 2013-10-17T03:10:25.977 に答える