diff options
Diffstat (limited to 'challenge-335/deadmarshal/java/Ch2.java')
| -rw-r--r-- | challenge-335/deadmarshal/java/Ch2.java | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/challenge-335/deadmarshal/java/Ch2.java b/challenge-335/deadmarshal/java/Ch2.java new file mode 100644 index 0000000000..ef3c59fa07 --- /dev/null +++ b/challenge-335/deadmarshal/java/Ch2.java @@ -0,0 +1,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"; + } +} + |
