Как мне исправить проблему с n-Queen в Java? Он просто помещает первую королевуJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Как мне исправить проблему с n-Queen в Java? Он просто помещает первую королеву

Сообщение Anonymous »

Я решаю задачу n-Queen на Java для школьного проекта. У меня в основном есть общая структура. Я делаю рекурсивный возврат и имею шахматную доску в виде массива.
  • 0 = пустое место
  • 1 = ферзь
  • 2 = угроза со стороны другого ферзя
Я пытался сделать это, блокируя все находящиеся под угрозой места всякий раз, когда я размещаю ферзя.
Когда я выполняю код, только первый ферзь становится размещено:
Изображение

Массив "LSperrung" предназначен для сохранения последних заблокированных полей, чтобы их можно было сбросить при удалении ферзя. Я подозреваю, что это сработает только в том случае, если вы откажетесь от 1 ферзя. Это не сработает, если вы уберете двух ферзей подряд. Однако я не знаю, как это исправить.
Мой код:
int n = 0;
int [] [] Feld;
int [] [] LSperrung;
int SpalteR = 0;

void FeldGenerieren (int a) {
Feld = new int [n] [n];
LSperrung = new int [n] [n];
for (int i = 0; i< Feld.length; i++) {
for (int j = 0; j< Feld.length; j++) {
Feld [j] = 0;
}
}
}

void FeldAusgeben () {
for (int i = 0; i< Feld.length; i++) {
for (int j = 0; j< Feld.length; j++) {
jTextArea1.append("" + Feld [j] + " ");
}
jTextArea1.append("\n");
}
}

void Algorithmus (int z, int s) {
while (z

Подробнее здесь: https://stackoverflow.com/questions/798 ... irst-queen
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»