码迷,mamicode.com
首页 > 其他好文 > 详细

井字棋

时间:2017-04-22 09:47:00      阅读:190      评论:0      收藏:0      [点我收藏+]

标签:pre   case   tmp   strong   数组   code   cto   判断   style   

题目描述

对于一个给定的井字棋棋盘,请设计一个高效算法判断当前玩家是否获胜。

给定一个二维数组board,代表当前棋盘,其中元素为1的代表是当前玩家的棋子,为0表示没有棋子,为-1代表是对方玩家的棋子。

测试样例:
[[1,0,1],[1,-1,-1],[1,-1,0]]
返回:true

//判断每行每列每个对角线上的值是否都为1
class Board {
public:
    bool checkWon(vector<vector<int> > board) {
        
        int len = board.size();
        //判断对角线
        int tmp = 0;
        for(int i = 0;i < len;i++){
            tmp += board[i][i];
        }
        if(tmp == len)
            return true;
        
        //判断对角线
        for(int i = 0;i < len;i++){
            tmp += board[i][len-i-1];
        }
        if(tmp == len)
            return true;
        
        //判断行
        for(int i = 0;i < len;i++){
            int sum = 0;
            for(int j = 0;j <len;j++)
                sum += board[i][j];
            if(sum == len)
                return true;
        }
        
        //判断列
        for(int i = 0;i < len;i++){
            int sum = 0;
            for(int j = 0;j < len;j++)
                sum += board[i][j];   
            if(sum == len)
                return true;
        }
        
        return false;
    }
};

 

井字棋

标签:pre   case   tmp   strong   数组   code   cto   判断   style   

原文地址:http://www.cnblogs.com/xiuxiu55/p/6746700.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!