标题: 八皇后问题,请帮帮忙!! [打印本页] 作者: xgb123 时间: 2004-08-23 13:38 标题: 八皇后问题,请帮帮忙!! 我们老师给我们留了个八皇后问题的编程作业。我想做的有图形界面的那种。但是对于一些接口问题处理的不太好!谁能帮我设计一下八皇后问题。把原代码发到我的邮箱中,我非常感谢!(要有图形界面的)我的邮箱是xgb123@sdan.com.cn!谢谢各位拉!作者: sakulagi 时间: 2004-08-23 22:37 标题: 八皇后问题,请帮帮忙!! 把你处理不好的接口说一下,大家一起来讨论一下不是更好?作者: ludejun98 时间: 2004-08-25 09:36 标题: 八皇后问题,请帮帮忙!! /*
* Created on 2004-8-13
*
* To change the template for this generated file go to
* Window&references&Java&Code Generation&Code and Comments
*/
package datastruct.stack;
/**
* @author Administrator
*
* To change the template for this generated type comment go to
* Window&references&Java&Code Generation&Code and Comments
*/
public class Queen {
private static final int QUEEN_SIZE = 8;
int[] qn = new int[QUEEN_SIZE + 1];
public static void main(String ar[]){
Queen q = new Queen();
q.init();
q.showAllQueen();
}
protected void init() {
for (int i = 1; i <= QUEEN_SIZE; i++) {
qn = 0;
}
}
public void showAllQueen() {
tryQueen(1);
}
public void print() {
queenIndex++;
System.out.println("\n"+queenIndex+"----------------------------"
for (int i = 1; i <= 8; i++) {
for (int j = 1; j <= 8; j++) {
if (j==qn) {
System.out.print("米"
} else {
System.out.print("口"
}
}
System.out.println();
}
}
public void tryQueen(int i) {
if (i == QUEEN_SIZE + 1) {
print();
return;
}
/**
* 在第I行J列能否放元素
* @param j
* @return
*/
private boolean canPut(int i, int j) {
for (int k = i - 1; k >;= 1; k--) {
if (qn[k] == j) {
return false;
}
if (i - j == k - qn[k]) {
return false;
}
if (i + j == qn[k] + k) {
return false;
}
}
return true;
}
/**
* 将第 index个盘子从a转移到b中。
* @param a 原支柱
* @param b 转移支柱
* @param c 目标支柱
* @param n 盘子个数。
*/
public void hanoi(int n, int a, int b, int c) {
if (n == 0) {
// System.out.println("</移动完毕>;"
return;
} else {
// 先把n-1个通过c转移到B上去。
hanoi(n - 1, a, c, b);
// 把第N个盘子转移过去。
move(n, a, c);
// 在把刚才的n-1个盘子通过A转移到C上去。
hanoi(n - 1, b, a, c);
}
}
private void move(int n, int a, int c) {
hanoiIndex++;
System.out.println(hanoiIndex+"\tMove(" + n + " From (" + a + " TO (" + c + ""
}
public class main extends Applet {
private final static int num=5;
int m=0,n=1;
Button button1,button2;
queen lastqueen=null;
int[][] now=new int[2][8];
int[] seg=new int[8];
int[] before=new int[8];
public void init(){
for (int i=0;i<=7;i++) {now[0]=40+i*40;now[1]=360;}
setLayout(null);
Font f=new Font("",Font.BOLD,30);
Label label1=new Label("八皇后问题"
label1.setFont(f);
label1.reshape(410,50,220,50);
add(label1);