编程题——井字棋
题目描述:
对于一个给定的井字棋棋盘,请设计一个高效算法判断当前玩家是否获胜。
给定一个二维数组board,代表当前棋盘,其中元素为1的代表是当前玩家的棋子,为0表示没有棋子,为-1代表是对方玩家的棋子。
本代码适用于所有n*n棋盘
程序代码如下:
#include <iostream>
#include <vector>
using namespace std;
/*四种情况可判断为玩家胜利,假设棋盘为row*row
*1.行全为1,即行和为row
*2.列全为1,即列和为row
*3.正对角全为1,即正对角和为row
*4.反对角全为1,即反对角和为row*/
class Board {
public:
bool checkWon(vector<vector<int> > board)
{
int row = board.size();
int i, j, sum;
//判断行和为row
for (i = 0; i < row; ++i