import java.util.Scanner; public class Main { private static Scanner in = new Scanner(System.in); public static void main(String[] args) { int T; while (in.hasNext()) { T = in.nextInt(); int[][] array = new int[3][3]; for (int i = 0; i < T; i++) { input(array); // print(); int x = win(1, array), y = win(2, array); if (x != 0) { System.out.println(x); continue; } if (y != 0) { System.out.println(y); continue; } System.out.println(dfs(0, array)); } } } private static int dfs(int peo, int[][] array) { if (spa(array) == 0) { return 0; } int Max = -10, Min = 10; for (int i = 0; i < 3; i++) { for (int j = 0, w; j < 3; j++) { if (array[i][j] == 0) { array[i][j] = peo + 1; w = win(peo + 1, array); if (w != 0) { array[i][j] = 0; return w > 0 ? Math.max(Max, w) : Math.min(Min, w); } if (peo == 0) { Max = Math.max(Max, dfs(1, array)); } else { Min = Math.min(Min, dfs(0, array)); } array[i][j] = 0; } } } return (peo != 0) ? Min : Max; } private static int win(int f, int[][] array) { int wi = 0, ans = 1; if (hok(0, f, array) || hok(1, f, array) || hok(2, f, array)) { wi = 1; } if (lok(0, f, array) || lok(1, f, array) || lok(2, f, array)) { wi = 1; } if (array[0][0] == f && array[0][0] == array[1][1] && array[1][1] == array[2][2]) { wi = 1; } if (array[0][2] == f && array[0][2] == array[1][1] && array[1][1] == array[2][0]) { wi = 1; } if (wi == 0) { return 0; } ans += spa(array); return (f == 1) ? ans : -ans; } private static boolean lok(int l, int f, int[][] array) { return array[0][l] == f && array[0][l] == array[1][l] && array[1][l] == array[2][l]; } private static boolean hok(int h, int f, int[][] array) { return array[h][0] == f && array[h][0] == array[h][1] && array[h][1] == array[h][2]; } private static int spa(int[][] array) { int sum = 0; for (int i = 0; i < 3; i++) { for (int j = 0; j < 3; j++) { if (array[i][j] == 0) { sum++; } } } return sum; } private static void input(int[][] array) { for (int i = 0; i < 3; i++) { for (int j = 0; j < 3; j++) { array[i][j] = in.nextInt(); } } } }
CCF-201803-4-棋局评估
猜你喜欢
转载自www.cnblogs.com/NEU-2015/p/9442821.html
今日推荐
周排行