(每日一练c++)CC203 井字棋

描述

给定一个二维数组board,代表棋盘,其中元素为1的代表是当前玩家的棋子,0表示没有棋子,-1代表是对方玩家的棋子。当一方棋子在横竖斜方向上有连成排的及获胜(及井字棋规则),返回当前玩家是否胜出。

测试样例:

[[1,0,1],[1,-1,-1],[1,-1,0]]
返回:true
class Board {
public:bool checkWon(vector> board) {//鲁棒性检查int row = 0, col = 0, len = board.size();if (len <= 2) return false;for (row = 0; row < len; row++){if (board.size() != len)return false;}//检查行for (row = 0; row < len; row++){col = 0;if (board[row][0] == 1 && board[row][len - 1] == 1){for (col = 1; col < len; col++){if (board[row][col] != 1)break;}}if (col == len)return true;}//检查列for (col = 0; col < len; col++){row = 0;if (board[0][col] == 1 && board[len - 1][col] == 1){for (row = 1; row < len; row++){if (board[row][col] != 1)break;}}if (row == len)return true;}//检查主对角线if (board[0][0] == 1 && board[len - 1][len - 1] == 1){for (row = 0; row < len; row++){if (board[row][row] != 1)break;}if (row == len)return true;}//检查逆对角线if (board[0][len - 1] == 1 && board[len - 1][0] == 1){for (row = 0; row < len; row++){if (board[row][len - 1 - row] != 1)break;}if (row == len)return true;}return false;}
};


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部