1
+ class TicTacToe {
2
+
3
+ /** Initialize your data structure here. */
4
+ private int [][] board ;
5
+ int [] rowCounter ;
6
+ int [] colCounter ;
7
+ int diagLeft ;
8
+ int diagRight ;
9
+ int n ;
10
+ public TicTacToe (int n ) {
11
+ board = new int [n ][n ];
12
+ rowCounter = new int [n ];
13
+ colCounter = new int [n ];
14
+ diagLeft = 0 ;
15
+ diagRight = 0 ;
16
+ this .n = n ;
17
+ }
18
+
19
+ /** Player {player} makes a move at ({row}, {col}).
20
+ @param row The row of the board.
21
+ @param col The column of the board.
22
+ @param player The player, can be either 1 or 2.
23
+ @return The current winning condition, can be either:
24
+ 0: No one wins.
25
+ 1: Player 1 wins.
26
+ 2: Player 2 wins. */
27
+ public int move (int row , int col , int player ) {
28
+ int move = player == 1 ? -1 : 1 ;
29
+ rowCounter [row ] = rowCounter [row ] + move ;
30
+ colCounter [col ] = colCounter [col ] + move ;
31
+
32
+ if (row == col ) {
33
+ diagLeft = diagLeft + move ;
34
+ }
35
+
36
+ if (row == n - col - 1 ) {
37
+ diagRight = diagRight + move ;
38
+ }
39
+ if (rowCounter [row ] == n || colCounter [col ] == n || diagLeft == n || diagRight == n ) {
40
+ return 2 ;
41
+ } else if (rowCounter [row ] == -n || colCounter [col ] == -n || diagLeft == -n || diagRight == -n ) {
42
+ return 1 ;
43
+ } else {
44
+ return 0 ;
45
+ }
46
+ }
47
+ }
48
+
49
+ /**
50
+ * Your TicTacToe object will be instantiated and called as such:
51
+ * TicTacToe obj = new TicTacToe(n);
52
+ * int param_1 = obj.move(row,col,player);
53
+ */ class TicTacToe {
54
+
55
+ /** Initialize your data structure here. */
56
+ private int [][] board ;
57
+ int [] rowCounter ;
58
+ int [] colCounter ;
59
+ int diagLeft ;
60
+ int diagRight ;
61
+ int n ;
62
+ public TicTacToe (int n ) {
63
+ board = new int [n ][n ];
64
+ rowCounter = new int [n ];
65
+ colCounter = new int [n ];
66
+ diagLeft = 0 ;
67
+ diagRight = 0 ;
68
+ this .n = n ;
69
+ }
70
+
71
+ /** Player {player} makes a move at ({row}, {col}).
72
+ @param row The row of the board.
73
+ @param col The column of the board.
74
+ @param player The player, can be either 1 or 2.
75
+ @return The current winning condition, can be either:
76
+ 0: No one wins.
77
+ 1: Player 1 wins.
78
+ 2: Player 2 wins. */
79
+ public int move (int row , int col , int player ) {
80
+ int move = player == 1 ? -1 : 1 ;
81
+ rowCounter [row ] = rowCounter [row ] + move ;
82
+ colCounter [col ] = colCounter [col ] + move ;
83
+
84
+ if (row == col ) {
85
+ diagLeft = diagLeft + move ;
86
+ }
87
+
88
+ if (row == n - col - 1 ) {
89
+ diagRight = diagRight + move ;
90
+ }
91
+ if (rowCounter [row ] == n || colCounter [col ] == n || diagLeft == n || diagRight == n ) {
92
+ return 2 ;
93
+ } else if (rowCounter [row ] == -n || colCounter [col ] == -n || diagLeft == -n || diagRight == -n ) {
94
+ return 1 ;
95
+ } else {
96
+ return 0 ;
97
+ }
98
+ }
99
+ }
100
+
101
+ /**
102
+ * Your TicTacToe object will be instantiated and called as such:
103
+ * TicTacToe obj = new TicTacToe(n);
104
+ * int param_1 = obj.move(row,col,player);
105
+ */
0 commit comments