2017-11-21 11 views
0

내가 틱택 토 게임을 짓고 있어요, 내가 같이 수직 및 수평 확인이 :박하 사탕 발가락 대각선 체크

def check_win_left_vert (board): 
    win = True 
    x = 0 
    for y in range (2): 
     if board[y][x] != board[y+1][x]: 
      win = False 
    return win 

그것은 Y를 증가하여 보드를 통해 보이는 중심선; 나는 x 축에 대해서 같은 방법을 사용한다. 대각선 축에 대해이 작업을 어떻게 수행합니까? 둘 다 늘리겠습니까?

+0

이는 관련 인덱스의 튜플의 목록을 작성하는 것이 훨씬 간단 그래서 확인하는 여덟 라인이 있으며, 그 반복 보드 값을 꺼내려면 : XYZ = [(0,1,2), (3,4,5), ...]; XYZ에서 x, y, z에 대해 : if board [x] == 보드 [y] == 보드 [z] : ...'. – ekhumoro

답변

0

귀하는 다른에 하나의 대각선에 모두 같은 변수를 사용하고 "이 반전"것입니다 : 당신이

for x in range(2): 
    if board[x][x] ... 

for x in range(2): 
    if board[x][2-x] ... 

주 경계 조건에 대한 조심. 보드의 오른쪽 가장자리에서 공간을 검사하려고 시도하면서 아직 수평 코드를 테스트하는 데 신경 쓰지 않았다는 것을 강력히 압니다. 그것을 고치기위한 범위를 줄이십시오.

0

당신은 대각선 경우에 같은 루프 점검 할 필요가

if board[y][y] != board[y+1][y+1] or board[2-y][y] != board[1-y][1+y]: 
     win = False 
    if win == False: 
     break;