`
guoweimail
  • 浏览: 203011 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

在8×8的国际象棋棋盘上放置8个皇后,要求任意两个皇后不能在同一行、同一列或同一条对角线上。

阅读更多

在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个皇后,要求任意两个皇后不能在同一行、同一列或同一条对角线上。要求用递归和非递归算法实现。打印所有可能情况。

    八皇后问题 c实现 mips实现

    八皇后问题,即在8×8 的国际象棋棋盘上放置8 个皇后,要求任意两个皇后不能 在同一行、同一列或同一条对角线上。求出如此放置方法的种数。 一种解决问题的思路是一行放置皇后,如果当前放置的皇后与前面的皇后不 ...

    八皇后问题

    数学大师高斯(Gauss)于1850年由此引申出著名的八皇后问题:在国际象棋的8×8方格的棋盘上如何放置8个皇后,使得这8个皇后不能相互攻击,即没有任意两个皇后处在同一横排,同一纵列,或同一与棋盘边框成45度角的斜线...

    八皇后游戏 八皇后游戏 八皇后游戏 八皇后游戏

    要求在国际象棋的棋盘上放置八个皇后,使其不能相互攻击,即任意两个皇后不能处于 棋盘的同一行、同一列和同一条对角线上。试问有多少种放法? 基本思想是:先把皇后放在(0,0)位置,然后把1号皇后放在(1,j)...

    C#N皇后问题

    (N皇后) 在NXN格国际象棋的棋盘上放置N个皇后,使其不能互相攻击,即任意两个皇后不能处在棋盘的同一行,同一列,同一斜线上,编程求出有多少种摆法?(2) 输入输出:用户输入N,程序输出摆法数目。

    八皇后游戏

    要求在国际象棋的棋盘上放置八个皇后,使其不能相互攻击,即任意两个皇后不能处于 棋盘的同一行、同一列和同一条对角线上。试问有多少种放法? 基本思想是:先把皇后放在(0,0)位置,然后把1号皇后放在(1,j)...

    八皇后游戏源码可实现

    要求在国际象棋的棋盘上放置八个皇后,使其不能相互攻击,即任意两个皇后不能处于 棋盘的同一行、同一列和同一条对角线上。试问有多少种放法? 基本思想是:先把皇后放在(0,0)位置,然后把1号皇后放在(1,j)...

    皇后问题 问题

    在一个在n×n的棋盘上放n个皇后,要求任意两个皇后都不在棋盘的同一行、列和对角线上(即按国际象棋规则,使得皇后间互不攻击),试给出一个递归算法求出n个皇后全部的放置方法。 算法设计: 给定n×n的棋盘(假定n=4...

    九皇后游戏(2022年1.0版本)

    在这个游戏里会有一个 9*9 的国际象棋棋盘,我们可以在在国际象棋的棋盘上放置皇后,使其不能相互攻击,即任意两个皇后不能处于棋盘的同一行、同一列和同一条对角线上。 1. 如果一方放置皇后时位于其他皇后的攻击...

    bahuanghou.rar_8皇后

    数据结构课程实际。八皇后问题如下:在8*8的国际象棋棋盘上放置了八个皇后,要求没有一个皇后能吃掉另一个皇后,即任意两个皇后都不处于棋盘的同一行、同一列或同一对角线上。

    八皇后问题的解决完整文档

    所以高斯提出了一个问题:在8*8的格的国际象棋上摆放八个皇后,使其不能相互攻击,即任意两个皇后都不能处于同一列、同一行、或同一条斜线上面,问共有多少种解法。 到了现代,随着计算机技术的飞速发展,这一古老而...

    数据结构与算法_递归_八皇后

    该问题是国际西洋棋棋手马克斯·贝瑟尔于1848年提出:在8×8格的国际象棋上摆放八个皇后,使其不能互相攻击,即:任意两个皇后都不能处于同一行、同一列或同一斜线上,问有多少种摆法。 思路分析 由于国际象棋是一...

    课程设计实验——八皇后_VC++游戏

    该问题是十九世纪著名的数学家高斯1850年提出:在8X8格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上,问有多少种摆法。  高斯认为有76种方案。1854年在柏林的...

Global site tag (gtag.js) - Google Analytics