="justify"> Тест № 2
Дії: клік мишею у вікні вітання.
Реакція програми: з'являється головне вікно зі згенерованим лабіринтом і починається процес пошуку шляху (див. малюнок 1.2).
Тест № 3
Дії: клік мишею по лабіринту з знайденим шляхом.
Реакція програми: генерується новий лабіринт і починається процес пошуку шляху (див. малюнок 1.2), під час якого лабіринт з потреби перемальовується. При закінченні процесу пошуку виводяться повідомлення: у разі невдалого пошуку про необхідність перебудувати лабіринт (див. малюнок 1.3), а в разі успішного пошуку з інформацією про знайдений шляху (див. малюнок 1.4, 1.5). br/>В
Малюнок 1.2 Тест № 2,3
В
Малюнок 1.3 Тест № 3
В
Малюнок 1.4 Тест № 3
В
Малюнок 1.5 Тест № 3
Тест № 4
Дії: натискання кнопки "пробіл"
Реакція програми: з кожним натисканням кнопки змінюється режим відображення інформації в заголовку програми і режим відтворення лабіринту (див. малюнок 1.2, 1.6, 1.7).
В
Малюнок 1.4 Тест № 6
В
Малюнок 1.4 Тест № 7
Тест № 5
Дії: натискання кнопки Escape під час пошуку шляху.
Реакція програми: процес пошуку шляху достроково завершується і виводиться інформація (див. малюнок 1.3, 1.4, 1.5).
2. Технічний проект
2.1 Діаграма класів
В
3. Робочий проект
3.1 Загальний опис програми
Це програмне виріб складається з 2 модулів. У програмному виробі використовуються методи роботи з графічним об'єктом TCanvas. Інформація надходить з клавіатури і миші. br/>
3.2 Опис підпрограм класу leaf
Конструктор leaf :: leaf ()
Вхідні дані: ні.
Вихідні дані: ні.
Процеси обробки: виділяється пам'ять для гілок поточного вузла дерева пошуку шляху.
Використовувані зовнішні змінні: kids.
Підпрограма bool leaf :: IsVisited (int x, int y, leaf * obj)
Вхідні дані: int x, int y - координати перевіреній кімнати, leaf * obj - покажчик на перевірявся вузол дерева.
Вихідні дані: булева змінна.
Процеси обробки: рекурсивно перевіряються всі кімнати, починаючи з поточної і закінчуючи вхідний кімнатою, за допомогою покажчика obj-> parent. Якщо в ланцюжку попередніх кімнат знайшлася кімната з координата...