【算法训练营】 井字棋

【算法训练营】 井字棋_第1张图片

井字棋

  • 1.题目
  • 2.讲解
  • 3.代码

1.题目

【算法训练营】 井字棋_第2张图片

2.讲解

可以通过遍历棋盘并检查每一行、每一列以及两个对角线是否有连续的当前玩家的棋子来实现这个函数。如果找到任何一行、一列或者一条对角线有连续的3个1(表示当前玩家的棋子),那么当前玩家获胜,返回true。否则,返回false ;没有什么难度,主要是考察对二维数组的理解

3.代码

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;
    }
};

你可能感兴趣的:(算法)