Advertisement
gg-master

FirstVersionOfEightQueens

Sep 11th, 2023
890
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.22 KB | History | 0 0
  1. public boolean findNewAcceptablePosition() {
  2.         boolean isFind = false;
  3.         boolean canAttack;
  4.         // Проверяем все строки столбца, что ферзь не под атакой
  5.         do {
  6.             this.row++;
  7.             canAttack = false;
  8.  
  9.             // Если есть сосед, то проверям, что сосед и все остальные ферзи слева не бьют текущую позицию
  10.             if(this.neighbor != null)
  11.                 canAttack = this.neighbor.canAttack(this.col, this.row);
  12.         }
  13.         while (this.row < this.owner.rowCount() && canAttack);
  14.  
  15.         // Если ферьз не под атакой и не вышел за верхнюю границу поля, то считаем, что нашли позицию
  16.         if(!canAttack && this.row <= this.owner.rowCount()) isFind = true;
  17.  
  18.             // Иначе, если есть сосед, то двигаем соседа
  19.         else if (this.neighbor != null && this.neighbor.findNewAcceptablePosition()){
  20.             this.row = 0;
  21.             return this.findNewAcceptablePosition();
  22.         } else this.row = this.owner.rowCount();
  23.         return isFind;
  24.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement