"justify">// якщо ми не скасовували процес пошуку клавішею Escape
// то додаємо посилання на сусідні кімнати
if (! newprocess) {(! a [p. x-1] [p. y]. stena &&! IsVisited (p. x-1, p. y, obj)) (ob j, 0); (! a [p. x +1] [p. y]. stena &&! IsVisited (p. x +1, p. y, obj)) (obj, 1); (! a [p. x] [p. y-1]. stena &&! IsVisited (p. x, p. y-1, obj)) (obj, 2); (! a [p. x] [p. y +1]. stena &&! IsVisited (p. x, p. y +1, obj)) (obj, 3);
// і рекурсивно обробляємо сусідні кімнати (obj-> kids [0]! = NULL) (TPoint (p. x-1, p. y), obj-> kids [0] ); (obj-> kids [1]! = NULL) (TPoint (p. x +1, p. y), obj-> kids [1]); (obj-> kids [2]! = NULL) (TPoint (p. x, p. y-1), obj-> kids [2]); (obj-> kids [3]! = NULL) (TPoint (p. x, p. y + 1), obj-> kids [3]);
}
// видаляємо виділену пам'ять [] obj-> kids; obj;
}
// ---------------------------------------- -----------------------------------
// при натисканні клавіші__fastcall TForm2 :: FormKeyPress (TObject * Sender, char & Key)
{
// якщо був натиснутий Пробіл, то міняємо режим виведення інформації
if (Key == VK_SPACE) = (info +1)% 3;
// якщо Escape, то встановлюємо змінну, яка достроково завершить роботу
// функції пошуку (Key == VK_ESCAPE) = true;
// при початковому режимі виведення інформації (info == 0) (process) = "Виробляється пошук шляху. (Вкл/відкл інформацію - Пробіл) "; =" Шлях знайдений (для зміни виду - Пробіл) ";
if (! info &&! process) = "Поточний шлях забирає монет:" + IntToStr (max)
+ "; через" + IntToStr (a [A. x] [A. y]. number) + "кімнат";
Draw ();
}
// якщо йде процес пошуку, то не можна виходити
// ---------------------------------------- ----------------------------------- __fastcall TForm2 :: FormCloseQuery (TObject * Sender, bool & CanClose)
{(process) CanClose = false;
}
// ---------------------------------------- -----------------------------------
// вихід з программи__fastcall TForm2 :: FormClose (TObject * Sender, TCloseAction & Action)
{> Terminate ();
}
// ---------------------------------------- -----------------------------------
// натискання кнопки миші__fastcall TForm2 :: FormClick (TObject * Sender)
{
// якщо процес пошуку вже запущений, то уведовляем і йдемо
if (process) {= "Йде пошук. Для зупинки натисніть Escape ";;}