可以通过遍历棋盘并检查每一行、每一列以及两个对角线是否有连续的当前玩家的棋子来实现这个函数。如果找到任何一行、一列或者一条对角线有连续的3个1(表示当前玩家的棋子),那么当前玩家获胜,返回true。否则,返回false ;没有什么难度,主要是考察对二维数组的理解
class Board {
public:
bool checkWon(vector<vector<int> > board) {
int row = board.size();
//检查每一行
for (int i = 0; i < row; i++) {
if (board[i][0] == 1 && board[i][1] ==1&& board[i][2] == 1) {
return true;
}
}
//检查每一列
for (int i = 0; i < row; i++) {
if (board[0][i] == 1 && board[1][i]==1 && board[2][i]== 1) {
return true;
}
}
//检查正对角
if(board[2][0]==1&&board[1][1]==1&&board[0][2]==1)
return true;
//检查副对角
if(board[0][0]==1&&board[1][1]==1&&board[2][2]==1)
return true;
return false;
}
};