а умови виконані, позначаємо сусіднє локацію двійкою.
Друга ітерація алгоритму виглядає так:
знайти в лабіринті локації, помічені двійками;
для кожної з чотирьох сусідніх з нею локацій перевірити ті ж умови;
якщо обидва умови виконані, позначаємо сусідню локацію трійкою і так далі.
2) задати лабіринт масивом:
Якщо на перетині i-го рядка і j-ого стовпця стіна, то елемент масиву з індексами i та j має значення 0, в іншому випадку 1. p align="justify"> Для генерації лабіринту був створений початковий масив a, що складається з цілих чисел:
0
0
... 0
0
0
... 0
Далі генератором випадкових чисел вибирається певне число непарних локацій в кожному парному ряду (крім останнього) і їм присвоюється значення 1, в кожному непарному ряду (крім першого і останнього) певному числу парних локацій присвоюється значення 0. Далі користувачем вводяться координати точки входу в лабіринт і точки виходу з нього. Елементу масиву, прийнятому за точку входу присвоюється значення 3. Якщо сусідні з ним локації порожні (тобто мають значення 1), то їм присвоюється значення 3 +1 = 4. Далі в Лабіринті шукаються всі елементи, що мають значення 4 і з ними проводиться та ж процедура. p align="justify"> Виглядати це буде приблизно так:
0000000
Перемінної d присвоїмо значення елемента масиву, прийнятого за точку виходу, після кількох циклів вищевказаних операцій, а потім призначимо йому значення 2. Далі перевіряються всі сусідні з ним елементи. Якщо їх значення дорівнює d-1, то таким елементам присвоюється значення 2, а значення змінної d зменшуємо на 1. Проробляємо цю операцію з усіма елементами масиву, рівними 2, якщо це можливо. p align="justify"> Потім, для виведення результату на екран вводиться масив символів b, такий же розмірності як масив a. Якщо елемента a [i, j] = 0, то відповідному елементу масиву b присвоюється символ 0 , якщо a [i, j] = 2, то b [i, j]: = * якщо a [i, j] не дорівнює 0 або 2, то b [ i, j]: = . Отриманий масив виводиться на екран.
Для вирішення даної задачі я вибрав другий спосіб, так як організація даних за допомогою масиву відносно проста і немає необхідності використовувати більш складну структуру. Для виконання завдання, а саме візуального представлення згенерованого лабіринту і шляху від точки входу до точки виходу пам'яті вистачає. Вікно програми дозволяє виводити ла...