luoheng
12/26/2019 - 11:32 AM

tictactoe

func tictactoe(moves [][]int) string {
    var place [3][3]int
    turn := 1
    for i := 0; i < len(moves); i++ {
        place[moves[i][0]][moves[i][1]] = turn
        turn = 3 - turn
    }
    var res string
    for i := 0; i < 3; i++ {
        if place[i][0] != 0 && place[i][0] == place[i][1] && place[i][1] == place[i][2] {
            if place[i][0] == 1 {
                res = "A"
            } else {
                res = "B"
            }
            break
        }
        if place[0][i] != 0 && place[0][i] == place[1][i] && place[1][i] == place[2][i] {
            if place[0][i] == 1 {
                res = "A"
            } else {
                res = "B"
            }
        }
    }
    if place[1][1] != 0 && (place[0][0] == place[1][1] && place[1][1] == place[2][2] ||
                            place[2][0] == place[1][1] && place[1][1] == place[0][2]) {
        if place[1][1] == 1 {
            res = "A"
        } else {
            res = "B"
        }
    }
    if len(res) != 0 {
        return res
    }
    if len(moves) == 9 {
        return "Draw"
    }
    return "Pending"
}