卡在EightQueens Java上
我在做作业时遇到了一些困难,不知道是否有人能给我指出正确的方向。该项目是八个皇后的任务,我需要使用递归制作一个程序,以找到一个解决方案,其中8个皇后可以放置在电路板上,而不会相互攻击 我的输出不断返回如下内容:卡在EightQueens Java上,java,Java,我在做作业时遇到了一些困难,不知道是否有人能给我指出正确的方向。该项目是八个皇后的任务,我需要使用递归制作一个程序,以找到一个解决方案,其中8个皇后可以放置在电路板上,而不会相互攻击 我的输出不断返回如下内容: false, false, false, false, false, false, false, false, true, false, false, false, false, false, false, false, true, false, false, false, fals
false, false, false, false, false, false, false, false,
true, false, false, false, false, false, false, false,
true, false, false, false, false, false, false, false,
true, false, false, false, false, false, false, false,
true, false, false, false, false, false, false, false,
true, false, false, false, false, false, false, false,
true, false, false, false, false, false, false, false,
true, false, false, false, false, false, false, false,
这不是一个有效的解决方案。这是我到目前为止的代码
public static boolean checkVerticals(boolean[][] board){
for (int i=0; i<board.length;i++){
int count = 0;
for (int j=0; j<board.length;j++){
if (board[j][i] = true)
count++;
}
if (count > 1) {
return false;
}
}
return true;
}
公共静态布尔校验垂直(布尔[]板){
对于(inti=0;i我算出了
if(board[j][i]=true)
应该是if(board[j][i]=true)
你能解释一下八皇后的概念吗?他们什么时候互相攻击?或者干脆if(board[j][i])
因为board 2-d数组的每个元素都是一个布尔值
。接受@R.J的建议,但仅供参考,这是一个非常常见的错误,为什么有时候你会看到if(0==x)
,因此省略=
会导致编译错误。谢谢大家。我以后会使用R.J的格式来避免再次出现这种错误。