Miklix

Генератор лабіринтів полювання та вбивств

Опубліковано: 16 лютого 2025 р. о 20:57:28 UTC
Останнє оновлення: 12 січня 2026 р. о 09:05:06 UTC

Генератор лабіринтів, що використовує алгоритм «Полювання та вбивство» для створення ідеального лабіринту. Цей алгоритм схожий на рекурсивний зворотний шлях, але, як правило, генерує лабіринти з дещо менш довгими, звивистими коридорами.

Ця сторінка була перекладена з англійської мови машинним перекладом, щоб зробити її доступною для якомога більшої кількості людей. На жаль, машинний переклад ще не є досконалою технологією, тому можуть траплятися помилки. Якщо ви бажаєте, ви можете переглянути оригінальну англійську версію тут:

Hunt and Kill Maze Generator

Алгоритм «Полювання та знищення» насправді є модифікованою версією рекурсивного зворотного відстеження. Модифікація полягає в систематичному скануванні (або «пошуку») нової комірки, з якої можна продовжити пошук, на відміну від справжнього рекурсивного пошуку, який завжди повертається до попередньої комірки в стеку.

Завдяки цьому, цей алгоритм можна легко адаптувати для створення лабіринтів з різним виглядом та відчуттям, просто вибираючи частіше входити в режим «полювання» або відповідно до певних правил. Версія, реалізована тут, переходить у режим «полювання» лише тоді, коли не може піти далі від поточної комірки.

Ідеальний лабіринт - це лабіринт, в якому існує рівно один шлях з будь-якої точки лабіринту в будь-яку іншу точку. Це означає, що ви не можете ходити по колу, але часто будете стикатися з глухими кутами, що змусить вас розвернутися і повернутися назад.

Карти лабіринту, згенеровані тут, включають версію за замовчуванням без стартових і фінішних позицій, тому ви можете визначити їх самостійно: з будь-якої точки лабіринту в будь-яку іншу точку буде знайдено шлях. Якщо вам потрібне натхнення, ви можете ввімкнути запропоновані позиції старту і фінішу - і навіть побачити рішення між ними.


Створіть новий лабіринт








Про алгоритм полювання та вбивства

Алгоритм «Полювання та вбивство» – це простий, але ефективний метод створення лабіринтів. Він дещо схожий на пошук у глибину (тобто алгоритм рекурсивного зворотного відстеження), за винятком того, що коли пошук не може піти далі від поточної позиції, він систематично сканує (або «полює») лабіринт, щоб знайти нову клітинку для подальшого пошуку. Алгоритм складається з двох основних фаз: ходьби та пошуків.

Як працює алгоритм «Полювання та вбивство» для створення лабіринту

Крок 1: Почніть з випадкової комірки

  • Знайдіть випадкову клітинку в сітці та позначте її як відвідану.

Крок 2: Фаза ходьби (випадкова ходьба)

  • Виберіть випадкового сусіда, якого ви не відвідували.
  • Перемістіться до цього сусіда, позначте його як відвіданий та прокладіть шлях між попередньою та новою коміркою.
  • Повторюйте, доки не залишиться невідвіданих сусідів.

Крок 3: Фаза полювання (повернення через сканування)

  • Скануйте сітку рядок за рядком (або стовпець за стовпцем).
  • Знайдіть першу невідвідану комірку, яка має хоча б одного відвіданого сусіда.
  • Підключіть цю комірку до сусіда, якого відвідали, щоб відновити фазу ходьби.
  • Повторюйте, доки не будуть відвідані всі клітини.

Додаткова література

Якщо вам сподобався цей пост, вам також можуть сподобатися ці пропозиції:


Поділитися на BlueskyПоділіться на FacebookПоділіться на LinkedInПоділіться на TumblrПоділитися на XПоділіться на LinkedInЗакріпити на Pinterest

Міккель Крістенсен

Про автора

Міккель Крістенсен
Міккель - творець і власник сайту miklix.com. Він має понад 20 років досвіду роботи професійним програмістом/розробником програмного забезпечення і наразі працює на повну ставку у великій європейській ІТ-корпорації. У вільний від ведення блогу час він присвячує різноманітним інтересам, хобі та захопленням, що певною мірою відображається на різноманітності тем, які висвітлюються на цьому сайті.