1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
public class Ch2 {
public static void main(String[] args) {
System.out.println(find_winner(new int[][]{{0, 0}, {2, 0},
{1, 1}, {2, 1}, {2, 2}}));
System.out.println(find_winner(new int[][]{{0, 0}, {1, 1}, {0, 1}, {0, 2}
, {1, 0}, {2, 0}}));
System.out.println(find_winner(new int[][]{{0, 0}, {1, 1}, {2, 0}, {1, 0},
{1, 2}, {2, 1}, {0, 1}, {0, 2}, {2, 2}}));
System.out.println(find_winner(new int[][]{{0, 0}, {1, 1}}));
System.out.println(find_winner(new int[][]{{1, 1}, {0, 0}, {2, 2}, {0, 1},
{1, 0}, {0, 2}}));
}
private static String find_winner(int[][] moves) {
int[] cnt = new int[8];
for (int k = moves.length - 1; k >= 0; k -= 2) {
int i = moves[k][0], j = moves[k][1];
cnt[i]++;
cnt[j + 3]++;
if (i == j) cnt[6]++;
if (i + j == 2) cnt[7]++;
if (cnt[i] == 3 || cnt[j + 3] == 3 || cnt[6] == 3 || cnt[7] == 3)
return k % 2 == 0 ? "A" : "B";
}
return moves.length == 9 ? "Draw" : "Pending";
}
}
|