2015-10-21 116 views
0

X將成爲贏家,因爲他有一個2x2組謝謝你的幫助!2x2分組邏輯

   example code for to find a vertical tic tac toe winner 

     for(int i=0; i<BOARD_SIZE; i++) 
     { 
      for(int j=0; j<BOARD_SIZE; j++) 
       if(board[i][j] != symbol) 
        continue Label1; 
      //if reached, winning line found 
      return true; 
     } 

將代碼中使用相同的變量上面什麼來確定的2x2分組贏家例如

  x|x|o|o 
      x|x|o|x 
      | | | 
      | | | 

X會在這裏奪冠

回答

0

這將是一個有點笨拙,但.. ..

for(int i = 0; i< (BOARD_SIZE -1); i++){ 
    for(int j = 0; j < BOARD_SIZE -1); j++){ 
     if((board[i][j] == symbol) && 
      (board[i+1][j] == symbol) && 
      (board[i][j+1] == symbol) && 
      (board[i+1][j+1] == symbol) 
     ) { /* winner */ return true;} 
    } 
} 
/* no winner found */ return false; 

我認爲增加內部for循環的複雜的條件,但我認爲如果2x2是你所需要的,這是不合理的。如果您需要分別搜索「3x3獲勝者」或「NxN獲勝者」,那麼內部循環肯定是合理的。