方法说明
1、展示显示棋盘方法。
// 显示棋盘
private static void show(int[][] qp) {
for (int i = 0; i < qp.length; i++) {
for (int j = 0; j < qp[i].length; j++) {
if (qp[i][j] == 0) {
System.out.print( " " );
} else {
System.out.print(qp[i][j] + " ");
}
}
System.out.println();
}
}
2、展示单线消除方法。
// 单线消除
private static boolean oneLine(int[][] qp, int x1, int y1, int x2, int y2) {
int min = 0;
int max = 0;
// 同行或者同列
if (x1 == x2) {
min = y1 > y2 ? y2 : y1;
max = y1 > y2 ? y1 : y2;
// 从y1循环到y2
for (int i = min + 1; i < max; i++) {
// 判断
if (qp[x1][i] != 0) {
return false;
}
}
// 可以消除
return true;
} else if (y1 == y2) {
min = x1 > x2 ? x2 : x1;
max = x1 > x2 ? x1 : x2;
// 从y1循环到y2
for (int i = min + 1; i < max; i++) {
// 判断
if (qp[i][y1] != 0) {
return false;
}
}
// 可以消除
return true;
}
return false;
}
3、展示双线消除方法。(可以理解双线消除就是二个单线消除)
// 双线消除
private static boolean twoLine(int[][] qp, int x1, int y1, int x2, int y2) {
// 就是二个单线消除,并且,转折点要是0
int zx1 = x1;
int zy1 = y2;
if (qp[zx1][zy1] == 0 && oneLine(qp, x1, y1, zx1, zy1) && oneLine(qp, zx1, zy1, x2, y2)) {
return