在8X8空棋盘上摆放八个皇后,并使其中任意两个皇后不能在同一行或同一列或同一对角线
代码:
package test;
import javax.swing.JOptionPane;
import javax.swing.JTextArea;
public class Queen {
int[] a = new int[8];
int[] b = new int[15];
int[] c = new int[15];
int[][] Queen = new int[8][8];
void next(int i) {
for (int j = 0; j < 8; j++) {
if (a[j] == 0 && b[i + j] == 0 && c[i - j + 7] == 0) {
a[j] = b[i + j] = c[i - j + 7] = 1;
Queen[i][j] = 1;
if (i < 7)
next(i + 1);
else {
String output = new String();
for (int m = 0; m < 8; m++) {
for (int n = 0; n < 8; n++)
output += " " + Queen[m][n] + " ";
output += "\n";
}
JTextArea outputArea = new JTextArea();
outputArea.setText(output);
JOptionPane.showMessageDialog(null, outputArea,
"One possible distribution",
JOptionPane.INFORMATION_MESSAGE);
}
a[j] = b[i + j] = c[i - j + 7] = Queen[i][j] = 0;
}
}
}
public static void main(String args[]) {
Queen one = new Queen();
one.next(0);
System.exit(0);
}
}
分享到:
相关推荐
在8×8的国际象棋棋盘上放置8个皇后,要求任意两个皇后不能在同一行、同一列或同一条对角线上。要求用递归和非递归算法实现。打印所有可能情况。
八皇后问题,即在8×8 的国际象棋棋盘上放置8 个皇后,要求任意两个皇后不能 在同一行、同一列或同一条对角线上。求出如此放置方法的种数。 一种解决问题的思路是一行放置皇后,如果当前放置的皇后与前面的皇后不 ...
数学大师高斯(Gauss)于1850年由此引申出著名的八皇后问题:在国际象棋的8×8方格的棋盘上如何放置8个皇后,使得这8个皇后不能相互攻击,即没有任意两个皇后处在同一横排,同一纵列,或同一与棋盘边框成45度角的斜线...
要求在国际象棋的棋盘上放置八个皇后,使其不能相互攻击,即任意两个皇后不能处于 棋盘的同一行、同一列和同一条对角线上。试问有多少种放法? 基本思想是:先把皇后放在(0,0)位置,然后把1号皇后放在(1,j)...
(N皇后) 在NXN格国际象棋的棋盘上放置N个皇后,使其不能互相攻击,即任意两个皇后不能处在棋盘的同一行,同一列,同一斜线上,编程求出有多少种摆法?(2) 输入输出:用户输入N,程序输出摆法数目。
要求在国际象棋的棋盘上放置八个皇后,使其不能相互攻击,即任意两个皇后不能处于 棋盘的同一行、同一列和同一条对角线上。试问有多少种放法? 基本思想是:先把皇后放在(0,0)位置,然后把1号皇后放在(1,j)...
要求在国际象棋的棋盘上放置八个皇后,使其不能相互攻击,即任意两个皇后不能处于 棋盘的同一行、同一列和同一条对角线上。试问有多少种放法? 基本思想是:先把皇后放在(0,0)位置,然后把1号皇后放在(1,j)...
在一个在n×n的棋盘上放n个皇后,要求任意两个皇后都不在棋盘的同一行、列和对角线上(即按国际象棋规则,使得皇后间互不攻击),试给出一个递归算法求出n个皇后全部的放置方法。 算法设计: 给定n×n的棋盘(假定n=4...
在这个游戏里会有一个 9*9 的国际象棋棋盘,我们可以在在国际象棋的棋盘上放置皇后,使其不能相互攻击,即任意两个皇后不能处于棋盘的同一行、同一列和同一条对角线上。 1. 如果一方放置皇后时位于其他皇后的攻击...
数据结构课程实际。八皇后问题如下:在8*8的国际象棋棋盘上放置了八个皇后,要求没有一个皇后能吃掉另一个皇后,即任意两个皇后都不处于棋盘的同一行、同一列或同一对角线上。
所以高斯提出了一个问题:在8*8的格的国际象棋上摆放八个皇后,使其不能相互攻击,即任意两个皇后都不能处于同一列、同一行、或同一条斜线上面,问共有多少种解法。 到了现代,随着计算机技术的飞速发展,这一古老而...
该问题是国际西洋棋棋手马克斯·贝瑟尔于1848年提出:在8×8格的国际象棋上摆放八个皇后,使其不能互相攻击,即:任意两个皇后都不能处于同一行、同一列或同一斜线上,问有多少种摆法。 思路分析 由于国际象棋是一...
该问题是十九世纪著名的数学家高斯1850年提出:在8X8格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上,问有多少种摆法。 高斯认为有76种方案。1854年在柏林的...