首页 > 其他 > 详细

LeetCode "Design Tic-Tac-Toe"

时间:2016-05-07 14:57:47      阅读:142      评论:0      收藏:0      [点我收藏+]

We don‘t have to keep a complete chess board.. just counters!

class TicTacToe {
    vector<int> cntVer;
    vector<int> cntHor;
    int cntDiag0;
    int cntDiag1;
    int _n;
public:
    /** Initialize your data structure here. */
    TicTacToe(int n) {
        cntVer.assign(n, 0);
        cntHor.assign(n, 0);
        cntDiag0 = cntDiag1 = 0;
        _n = n;
    }
    
    /** Player {player} makes a move at ({row}, {col}).
        @param row The row of the board.
        @param col The column of the board.
        @param player The player, can be either 1 or 2.
        @return The current winning condition, can be either:
                0: No one wins.
                1: Player 1 wins.
                2: Player 2 wins. */
    int move(int row, int col, int player) 
    {
        int d = player == 1 ? 1 : -1;
        
        cntVer[col] += d;
        if(abs(cntVer[col]) == _n) return player;
            
        cntHor[row] += d;
        if(abs(cntHor[row]) == _n) return player;
        
        if(col== row)
        {
            cntDiag0 += d;
            if(abs(cntDiag0) == _n) return player;
        }
        if ((col + row) == _n - 1)
        {
            cntDiag1 += d;
            if(abs(cntDiag1) == _n) return player;
        }
            
        return 0;
    }
};

LeetCode "Design Tic-Tac-Toe"

原文:http://www.cnblogs.com/tonix/p/5468270.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!