思路: 井字棋有四种情况表示当前玩家获胜,1代表当前玩家棋子
1.行全为1, 即行的和为3
- 列全为1, 列的和为3
- 主对角全为1--对角和为3 , 副对角全为1--对角和为3
- 如果扩展为N*N的话,判断和是否等于N
public class Board {
public boolean checkWon(int[][] board) {
// write code here
int size=board.length;
int sum=0;
int i=0;
int j=0;
//检查每一行的个数是否为size
for(i=0;i<size;i++){
for(j=0;j<size;j++){
sum+=board[i][j];
}
if(sum==size){
return true;
}
}
//检查每一列的个数是否为size
for(i=0;i<size;i++){
sum=0;
for(j=0;j<size;j++){
sum+=board[j][i];
}
if(size==sum){
return true;
}
}
//检查主对角线的值
sum=0;
for( i=0;i<size;i++){
sum+=board[i][i];
}
if(size==sum){
return true;
}
//检查副对角线的值
sum=0;
for(i=0;i<size;i++){
sum+=board[i][size-i-1];
}
if(size==sum){
return true;
}
return false;
}
}