2015-01-09 8 views
-1
내가 다음 코드 줄 인덱싱 오류가 있어요

, 사람이 무엇이 잘못되었는지 말해 왜 희망 오류를 수정하시기 바랍니다 수박하 사탕 발가락 오류 파이썬

for row in WAYS_TO_WIN: 
    if board[row[0]] == board[row[1]] == board[row[2]] != EMPTY: 
     winner = board[row[0]] 
     return winner 

전체 코드는 다음과 같습니다

def winner(board, EMPTY): 
    #If you have won 
    TIE = "TIE" 
    WAYS_TO_WIN = ((1, 2, 3), 
        (4, 5, 6), 
        (7, 8, 9), 
        (1, 4, 7), 
        (2, 5, 8), 
        (3, 6, 9), 
        (1, 5, 9), 
        (3, 5, 7)) 

    for row in WAYS_TO_WIN: 
     if board[row[0]] == board[row[1]] == board[row[2]] != EMPTY: 
      winner = board[row[0]] 
      return winner 
+0

코드가 너무 많습니다. 전체 프로그램이 아니라'WAYS_TO_WIN'과'board' 만 필요합니다. 또한 귀하의 들여 쓰기는 상단 섹션에 대한 해제입니다 – Scironic

+0

미안 해요 방금 변경, 이것은 내 첫 게시물입니다. 괜찮 니? –

+0

여전히 많은 부분이 있습니다. 'new_board'는 무엇입니까? – Scironic

답변

0

NUM_SQUARES == 9으로, 파이썬은 0으로 인덱싱됩니다. 보드에서 액세스 할 수있는 가장 높은 인덱스는 보드 [8] (보드의 9 위)입니다.

WAYS_TO_WIN의 모든 숫자에서 1을 가져 가면됩니다.

자세히 - 보드의 인덱스는 0부터 8까지 총 9 개입니다. (0은 첫 번째, 8은 9 번째 임). WAYS_TO_WIN의 최소값은 1이고 최대 값은 9.1은 보드의 두 번째 위치와 같으며 9는 존재하지 않는 10 번째 위치와 동일하므로 오류가 발생합니다.