📄 queen.java
字号:
public class Queen {
public static char chessboard[][] =new char[8][8];
public static void main(String args[]){
int i=0;
int j=0;
for(i=0;i<8;i++)
for(j=0;j<8;j++)
chessboard[i][j]='x';
nqueen(0,0,0);
System.out.println("The graph of 8 Queen on the chessboard: ");
System.out.println("0 1 2 3 4 5 6 7 8");
System.out.println("+---+---+---+---+---+---+---+---+");
for(i=0;i<8;i++){
//System.out.print(" "+i+" |");
for(j=0;j<8;j++)
System.out.print("|-"+chessboard[i][i]+"-");
System.out.println("|");
System.out.println("+---+---+---+---+---+---+---+---+");
}
}public static int nqueen(int Locx,int Locy,int queens){
int i,j;int n=0;
if(queens==8)return 1;
else if(Queenplace(Locx,Locy))
{chessboard[Locx][Locy]='Q';
for(i=0;i<8;i++)
for(j=0;j<8;j++){
n+=nqueen(i,j,queens+1);
if(n>0)break;
}
if(n>0)return 1;
else{
chessboard[Locx][Locy]='x';
return 0;
}
}return 0;
}public static boolean Queenplace(int Locx,int Locy){
int i,j;
if(chessboard[Locx][Locy]!='x')return false;
for(j=Locy-1;j>=0;j--)
if(chessboard[Locx][j]!='x')return false;
for(j=Locy+1;j<8;j++)
if(chessboard[Locx][j]!='x')return false;
for(i=Locx-1;i>=0;i--)
if(chessboard[i][Locy]!='x')return false;
for(i=Locx+1;i<8;i++)
if(chessboard[i][Locy]!='x')return false;
i=Locx-1;j=Locy-1;
while(i>=0&j>=0)
if(chessboard[i--][j--]!='x')return false;
i=Locx+1;j=Locy-1;
while(i<8&j>=0)
if(chessboard[i++][j--]!='x')return false;
i=Locx-1;j=Locy+1;
while(i>=0&j<8)
if(chessboard[i--][j++]!='x')return false;
i=Locx+1;j=Locy+1;
while(i<8&j<8)
if(chessboard[i++][j++]!='x')return false;
return true;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -