public void whoWin(int row, int col, char ch) /* row是傳入的棋子行地址,col為列地址,ch代表棋子,"黑"或“白” */ { int i; int j; int k; char[] line = new char[getColOfBoard()]; /* 存儲斜行數據 */ int chNum = 0; /* 若chNum >= 5,則贏 */ // 行判斷輸贏 for(i = 0; i < getColOfBoard(); i++) { if(cheboard[row][i] == ch) { chNum++; if(chNum >= 5) { System.out.println(ch + "獲勝!游戲結束!"); return; } } else { chNum = 0; } } // 列判斷輸贏 chNum = 0; for(i = 0; i < getRowOfBoard(); i++) { if(cheboard[i][col] == ch) { chNum++; if(chNum >= 5) { System.out.println(ch + "獲勝!游戲結束!"); return; } } else { chNum = 0; } } // 右下斜行判斷輸贏 chNum = 0; k = 0; for(i = 0; i < getColOfBoard(); i++) { /* 將line數組清零 */ line[i] = '0'; } i = row + 1; j = col + 1; while(i > 0 && j > 0) { i--; j--; } while(i < getRowOfBoard() && j < getColOfBoard()) { line[k++] = cheboard[i][j]; i++; j++; } for(i = 0; i < line.length; i++) { if(line[i] == ch) { chNum++; if(chNum >= 5) { System.out.println(ch + "獲勝!游戲結束!"); return; } } else { chNum = 0; } } // 右上斜行判斷 chNum = 0; k = 0; for(i = 0; i < getColOfBoard(); i++) { /* 將line數組清零 */ line[i] = '0'; } i = row; j = col; while(i < getRowOfBoard() - 1 && j > 0) { i++; j--; } while(i >= 0 && j < getColOfBoard()) { line[k++] = cheboard[i][j]; i--; j++; } for(i = 0; i < line.length; i++) { if(line[i] == ch) { chNum++; if(chNum >= 5) { System.out.println(ch + "獲勝!游戲結束!"); return; } } else { chNum = 0; } } }