java程序求解和为15的棋盘游戏问题。要求将从1到9的九个数填入3×3的棋盘中,使得各行、各列以两个对角线上的三个数之

java程序
求解和为15的棋盘游戏问题。要求将从1到9的九个数填入3×3的棋盘中,使得各行、各列以两个对角线上的三个数之和均为15,
lzf520 1年前 已收到1个回答 举报

youthman102 花朵

共回答了21个问题采纳率:85.7% 举报

public class GameTest {
int[][] array;
int count = 1;

public GameTest() {
array = new int[3][3];
}

public void showgrid() {
int i, j;
for (i = 0; i < array.length; i++) {
for (j = 0; j < array[i].length; j++)
System.out.print(array[i][j] + " ");
System.out.println();
}
System.out.println();
}

private boolean datacheck() {
if (array[0][0] + array[0][1] + array[0][2] != 15)
return false;
if (array[1][0] + array[1][1] + array[1][2] != 15)
return false;
if (array[2][0] + array[2][1] + array[2][2] != 15)
return false;

if (array[0][0] + array[1][0] + array[2][0] != 15)
return false;
if (array[0][1] + array[1][1] + array[2][1] != 15)
return false;
if (array[0][2] + array[1][2] + array[2][2] != 15)
return false;

if (array[0][0] + array[1][1] + array[2][2] != 15)
return false;
if (array[0][2] + array[1][1] + array[2][0] != 15)
return false;
return true;
}

public void arrange() {
int sum = 1;
for (int i = 1; i <= 9; i++) {

for (int j = 1; j <= 9; j++) {
if (j == i)
continue;
for (int k = 1; k <= 9; k++) {
if (k == i || k == j)
continue;
for (int l = 1; l <= 9; l++) {
if (l == i || l == j || l == k)
continue;
for (int m = 1; m <= 9; m++) {
if (m == i || m == j || m == k || m == l)
continue;
for (int n = 1; n <= 9; n++) {
if (n == i || n == j || n == k || n == l
|| n == m)
continue;
for (int o = 1; o <= 9; o++) {
if (o == i || o == j || o == k || o == l
|| o == m || o == n)
continue;
for (int p = 1; p <= 9; p++) {
if (p == i || p == j || p == k
|| p == l || p == m || p == n
|| p == o)
continue;
for (int q = 1; q <= 9; q++) {
if (q == i || q == j || q == k
|| q == l || q == m
|| q == n || q == o
|| q == p)
continue;

array[0][0] = i;
array[0][1] = j;
array[0][2] = k;
array[1][0] = l;
array[1][1] = m;
array[1][2] = n;
array[2][0] = o;
array[2][1] = p;
array[2][2] = q;

if (datacheck()) {
System.out.println("******n第" + sum
+ " 种n******");
sum++;
showgrid();
}
}
}
}
}
}
}
}
}
}
}

public static void main(String args[]) {
GameTest t = new GameTest();
t.arrange();

}
}

1年前

5
可能相似的问题
Copyright © 2024 YULUCN.COM - 雨露学习互助 - 16 q. 0.027 s. - webmaster@yulucn.com