当前位置: 代码迷 >> Java相关 >> JAVA程序
  详细解决方案

JAVA程序

热度:399   发布时间:2005-12-27 16:11:00.0
JAVA程序
请JAVA高手帮忙,我有一个很急的程序
用 Applet实现八皇后问题
搜索更多相关的解决方案: JAVA  

----------------解决方案--------------------------------------------------------
小弟没玩过C,  请教说说八皇后是啥东东??
----------------解决方案--------------------------------------------------------
看了下面的帖子 了解了~~但是我怎么只能放7个咧??再试试~
----------------解决方案--------------------------------------------------------
我还以为你知道呢
此论坛是否有JAVA高手啊
快帮帮忙吧
这可是非常急的事

----------------解决方案--------------------------------------------------------

----------------解决方案--------------------------------------------------------
我都不知道怎么办了
----------------解决方案--------------------------------------------------------
高手有啊,不在,忙啊不要急
----------------解决方案--------------------------------------------------------

我来解决一下放置问题:
皇后的走法有点象象棋里面的车,但是她比车牛X多了,能走斜线,所以放置的时候必须满足以下2点条件:
1。 2个棋子不能同时在同一行或同一列上
2。 2个旗子不能同时在左斜线和右斜线的方向上
以下是解决的方案:
public class Queen{
public static int SIZE = 8;
public static void main(String[] args){
int[] Queen = new int [SIZE];
int y = 0,x = 0,i = 0,j = 0,d = 0,t = 0;
Queen[0] = -1;
while(true){
for(x=Queen[y]+1;x<SIZE;x++){
for(i=0;i<y;i++){
j = Queen[i];
d = y-i;
if((j==x)||(j==x-d)||(j==x+d))
break;
}
if (i>=y)
break;
}
if (x == SIZE){
if (0==y){
System.out.println("排列完成!");
break;
}
Queen[y]=-1;
y--;
}
else {
Queen[y]=x;
y++;
if (y<SIZE)
Queen[y]=-1;
else {
System.out.println("\n" + ++t +':');
for(i=0;i<SIZE;i++){
for (j=0;j<SIZE;j++){
if(Queen[i] == j)
System.out.print("■ ");
else
System.out.print("□ ");
}
System.out.println();
}
y = SIZE -1;
}
}
}
}
}


----------------解决方案--------------------------------------------------------
至于你想用Applet解决,那就是你自己的问题了,
好了,顶一下~~~
----------------解决方案--------------------------------------------------------
对了,忘记说了,□是棋盘,■是皇后
----------------解决方案--------------------------------------------------------
  相关解决方案