Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public boolean findNewAcceptablePosition() {
- boolean isFind = false;
- boolean canAttack;
- // Проверяем все строки столбца, что ферзь не под атакой
- do {
- this.row++;
- canAttack = false;
- // Если есть сосед, то проверям, что сосед и все остальные ферзи слева не бьют текущую позицию
- if(this.neighbor != null)
- canAttack = this.neighbor.canAttack(this.col, this.row);
- }
- while (this.row < this.owner.rowCount() && canAttack);
- // Если ферьз не под атакой и не вышел за верхнюю границу поля, то считаем, что нашли позицию
- if(!canAttack && this.row <= this.owner.rowCount()) isFind = true;
- // Иначе, если есть сосед, то двигаем соседа
- else if (this.neighbor != null && this.neighbor.findNewAcceptablePosition()){
- this.row = 0;
- return this.findNewAcceptablePosition();
- } else this.row = this.owner.rowCount();
- return isFind;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement