私はconnect 4を作成しました。それは7×6グリッドです。以下は、対角接続4が勝ったかどうかをテストするためのアルゴリズムです。チップがイメージに示された位置にあるとき、インデックスエラーが発生します。どのようにこれを修正すればよいのですか?対角アルゴリズムをどのように動作させるのですか?インデックスエラー、範囲外Python
board[5][1] = 1 # (red chip)
board[4][2] = 1 # (red chip)
board[3][3] = 1 # (red chip) #THIS IS WHEN ERROR OCCURS FOR THE FIRST DIAGONAL ALGORITHM
# check/diagonal spaces
for x in range(7 - 3):
for y in range(3, 6):
if board[x][y] == 1 and board[x+1][y-1] == 1 and board[x+2][y-2] == 1 and board[x+3][y-3] == 1:
return True
# check \ diagonal spaces
for x in range(7 - 3):
for y in range(6 - 3):
if board[x][y] == 1 and board[x+1][y+1] == 1 and board[x+2][y+2] == 1 and board[x+3][y+3] == 1:
return True
エラー:
if board[x][y] == 1 and board[x+1][y-1] == 1 and board[x+2][y-2] == 1 and board[x+3][y-3] == 1:
IndexError: list index out of range
'range(7 - 3)'は 'range(4)'と同じです。これは0から3まで数えます。 –
それは私が対角線4を検出することを可能にすると思った唯一の方法ですが、私はこれの数学を混乱させるかもしれません。対角の勝利が検出されていない理由が考えられます。 –