연결 4; 그것은 7x6 격자입니다. 다음은 대각선 연결 4가 승리했는지 여부를 테스트하는 알고리즘입니다. 그러나 칩이 이미지에 표시된 위치에있을 때 인덱스 오류가 발생합니다. 이 문제를 어떻게 해결할 수 있습니까? 그리고 어떻게 대각선 알고리즘을 사용할 수 있습니까?인덱스 오류, 범위를 벗어남 파이썬
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
오류 : 보드가 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:
IndexError: list index out of range
'range (7 - 3)'는'range (4)'와 동일하며 0에서 3까지 계산됩니다. 원하는 것이 맞습니까? –
제가 대각선 4를 감지 할 수있게 해주는 유일한 방법은 제가 생각하기에 이것의 수학을 혼란스럽게 만들었을 것입니다. 대각선 승리가 감지되지 않는 이유가 될 수 있습니다. –