谁能给我一个JAVA的八皇后的代码(加上详细的注解) 谢谢

来源:百度知道 编辑:UC知道 时间:2024/06/07 15:15:16

public class Queen {

int num; //记录方案数
int[]queenline=new int[8]; // 记录8个皇后所占用的列号
boolean[] col=new boolean[8]; //列安全标志
boolean[] diagonal=new boolean[16]; //对角线安全标志
boolean []undiagonal=new boolean[16]; //反对角线安全标志
void solve(int i)
{
for(int j=0;j<8;j++)
{
if(col[j]&&diagonal[i-j+7]&&undiagonal[i+j]) //表示第i行第j列是安全的可以放皇后
{
queenline[i-1]=j+1;
col[j]=false; //修改安全标志
diagonal[i-j+7]=false;
undiagonal[i+j]=false;
if(i<8) //判断是否放完8个皇后
{
solve(i+1); //未放完8个皇后则继续放下一个
}
else //已经放完8个皇后
{
num++;
System.out.println("\n皇后摆放第"+num+"种方案:"