ГЛАВНАЯ Визы Виза в Грецию Виза в Грецию для россиян в 2016 году: нужна ли, как сделать

Как рисовать лабиринты. Как сделать фантазийный лабиринт своими руками

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

Поэтому, если вы переживаете, что ваши питомцы будут скучать и при этом не хотите раскошеливаться, предлагаем вам идею – сделать лабиринт для хомяка своими руками!

В начале статьи вы видели картину конечного результата. Конечно, он выглядит не очень приглядно, но этот туннельный лабиринт состоит из пластиковых бутылок, а значит, обойдется вам бесплатно! А в наше время хочется хоть на чем-то сэкономить.

Обратите внимание, такой же лабиринт-туннель можно сделать своими руками и для крыс, хорьков, морских свинок и других грызунов.

Однако эту игрушку нельзя оставлять в клетке хомяков надолго. Бутылки сделаны из пластика, а ваши питомцы любят все грызть. В результате могут появиться острые края в местах, где поработали хомячки – это может поранить их, а также съеденный пластик может вызвать у них расстройство.

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

Представленное руководство поможет вам шаг за шагом сделать свой собственный туннельный лабиринт у себя дома. Причем форма лабиринта и его сложность зависит только от вашего желания и фантазии.

Внимание! При работе вы будете использовать острые инструменты, поэтому соблюдайте крайнюю осторожность во время изготовления лабиринта для хомяка.

Что понадобится для того, чтобы сделать лабиринт для хомяка своими руками:

Необходимое время: примерно 30 минут.

  1. Тщательно промойте все бутылки – вы же не хотите, чтобы туннели для ваших домашних питомцев были вонючими и липкими!
  2. Удалите этикетки и крышки с бутылок – они просто не нужны и к тому же мешают!
  3. Свой первый проект можете начать с 4-х бутылок, но количество можно легко увеличить на любом этапе – это только вопрос хранения готового лабиринта – чем больше, тем сложнее его куда-либо пристроить. Здесь есть также место для творчества, ведь пластиковые бутылки бывают разных цветов и форм. Это поможет вам создать лабиринт не похожий на другие.
  4. Осторожно с помощью канцелярского ножа удалите верхнюю и нижнюю часть каждой бутылки. Желательно сделать это на достаточно твердой поверхности, иначе вы рискуете продырявить ножом что-либо ценное. Также имейте в виду, что обрезанные края, скорее всего, будут зубчатые и острые. Это мы устраним на следующем шагу.



  5. Возьмите изоленту. Изоляционная лента идеально подходит для этого проекта, так как она хорошо облегает пластик, а также хорошо обклеивает края бутылок. Скрыть неровные края очень важно – вы же не хотите, чтобы ваши питомцы порезали свои маленькие лапки! Сделайте короткие полоски липкой ленты и приклейте их половину на обратную сторону ободка бутылки. Затем сделайте разрезы в ленте примерно на расстоянии 1 см друг от друга, и заверните на другую сторону. Это позволит вам получить более скругленные углы во время наклейки изоленты. Хоть этот процесс и занимает довольно много времени, тем не менее, он очень важен. После того как вы обклеите края всех бутылок, переходите к следующему шагу.



  6. При подготовке «Т» соединений двух бутылок вам необходимо в одной из них вырезать круглое отверстие. С помощью канцелярского ножа сделайте надрез в виде «+» в месте будущего отверстия. Отогните края пластика, стараясь не дергать слишком сильно, так как пластик может порваться дальше по надрезу и тогда бутылку придется заменить! Затем вставьте в получившееся маленькое отверстие ножницы и вырежьте с их помощью круг диаметром второй бутылки. Используя 1 см полоски изоленты, обклейте края получившегося отверстия.

  7. Возьмите бутылку, которая будет присоединяться к первой и сожмите её край, сделав его плоским. Вырежьте по диагональной линии верхний и нижний угол, как показано на рисунке. Это сделает край изогнутым, что позволит одной бутылке удобно «сидеть» на другой. Не волнуйтесь, если вы слишком много отрезали. Обклеивая края изолентой, вы можете просто прикрепить излишне отрезанный кусочек на свое место.
  8. Удерживая обе трубки в месте соединения, убедитесь, что трубка, сделанная на 7 шаге, плотно прилегает к трубке, сделанной на 6 шаге. Удерживая их в нужном положении, используйте один длинный кусок ленты, чтобы прикрепить бутылки между собой. Для этого приклейте изоленту на одну сторону прикрепляемой бутылки и, обведя вокруг другой бутылки, приклейте конец ленты с другой стороны. Затем оставшиеся щели в месте соединения заклейте кусками изоленты. Более подробно данный процесс можете посмотреть на фото.
  9. Теперь ваши две трубки должны выглядеть как на следующем рисунке. Повторите все шаги, начиная с 6го, для оставшихся двух труб. После завершения вы будете иметь два набора двух труб.
  10. Последнее, что нужно сделать, это соединить вместе с помощью изоленты ваши два набора двух труб.

Итак, как видите, сделать лабиринт для хомяка своими руками не сложно. Немного вашего времени, несколько подручных средств и вуаля – изделие готово к работе! Ваши хомячки будут счастливы исследовать новые туннельные лабиринты, а вы получите массу позитивных эмоций наблюдая за ними. Напоследок, посмотрите видео с забавным хомяком в главной роли, который пытается найти выход из лего-лабиринта.

В процессе организации пространства собственного участка непременно возникает стремление сделать его не просто привлекательным, а максимально оригинальным.

Наиболее интересное решение для осуществления такой цели — оформление лабиринта. Отметим, что занятие это далеко не простое, хоть и непременно увлекательное, но все же, при правильном подходе и тщательном предварительном проектировании, не отнимет много времени.

Как сделать декоративный лабиринт?

Чтобы получить отличный результат, выполните все работы в строго определенной последовательности:


Как выбрать участок для лабиринта?

Отграничьте территорию, на которой вы готовы создать декоративный лабиринт. Четкие рекомендации в этом отношении отсутствуют, так как эту форму ландшафтного дизайна легко организовать и на равнинной местности, и на холмистой.

Важно! Основные условия отвечают следующим правилам:

На что обратить внимание при составлении плана композиции?

Создание схемы лабиринта — наиболее ответственный ответ. От того, насколько грамотно вы выполните эту работу, полностью зависит последующая привлекательность придомовой территории.

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

Последовательность работы при составлении проекта:


Какой выбрать тип лабиринта?

В современном ландшафтном дизайне существует несколько направлений создания этой формы:


Важно! Ознакомьтесь с особенностями каждого типа, чтобы принять правильное решение. При выборе руководствуйтесь следующими критериями:


Почему стоит создать лабиринт из камней?

Этот способ наиболее простой, но в то же время позволяет достичь максимальной оригинальности при декорировании. Выгодно отличает этот тип ландшафтного оформления целый ряд преимуществ по сравнению с другими вариантами.

Важно! Примите во внимание, что создание каменного лабиринта вполне доступно для самостоятельного выполнения, даже при отсутствии каких-либо навыков.

Преимущества каменного лабиринта

Достоинств такого решения достаточно много, поэтому выделим лишь наиболее весомые:


Важно! Подобное явление обусловлено практической невозможностью подобрать абсолютно идентичный материал по форме, цвету и размеру. Поэтому, даже при использовании в качестве основы наиболее популярной схемы, результат будет значительно отличаться от исходника.

Каким камням отдать предпочтение?

Для создания каменного лабиринта подходят практически все типы камней различной природы происхождения:


Как сделать лабиринт-клумбу?

Такой вариант также не отличается особой сложностью, но при этом обеспечит особую яркость, насыщенность и необычайную эффектность участка в период с весны до осени. Очень важно правильно подобрать узор для посадки цветов и скомбинировать их по цвету и высоте.

Важно! Отметим, что неоспоримыми достоинствами подобного решения являются:


Какие цветы использовать для формирования лабиринта?

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

Отдайте предпочтение следующим видам:


Важно! Разнообразие оттенков данных пород настолько широко, что для вас не составит проблемы найти наиболее интересное решение для создания контраста в соседних фигурах узора лабиринта.

Отличительные особенности сада-лабиринта

Обустройство этой ландшафтной формы — это зонирование участка в соответствии с выбранным рисунком с помощью живых изгородей. Чаще всего для этой цели используют всевозможные виды кустарников, которые легко поддаются стрижке.

Важно! Если решили отдать предпочтение именно лабиринту из растений, учтите, что растения потребуют основательного ухода и регулярного формования. Иначе не удастся достичь желаемого результата, а вся растительность станет бесформенной массой.

Какие растения выбрать?

Выбор подходящих растений определяется исключительно вашей фантазией, но существует несколько наиболее популярных вариантов, применение которых позволит создать красивую живую изгородь с минимальными затратами времени:


Важно! В случае, когда вы решили предпочесть высадку однолетних растений, обратите внимание на кохию веничную — она дает густую обильную зелень, а высота кустарника достигает 1 метра.

Как сделать фантазийный лабиринт своими руками?

Подобное решение приемлемо лишь в том случае, когда ваша придомовая территории отличается внушительными размерами, причем, большинство строительных и посадочных работ вы привыкли выполнять сами. По своей сути, фантазийный лабиринт — это комбинация всех вышеперечисленных типов этой ландшафтной формы в сугубо индивидуальном порядке.

Такие проекты очень сложны в оформлении и нередко плавные и контрастные переходы одной фигуры в другую охватывают полностью весь участок.

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

Видео

Просмотрите видео, в котором показан пример масштабного лабиринта, чтобы оценить всю сложность подобного проекта.

Как создать привлекательные дорожки?

По выполнению этой работы также существует несколько несложных правил, которых обязательно придерживайтесь еще на стадии проектирования:


Особенности оформления лабиринта

Объем работ будет разниться в зависимости от масштаба территории под лабиринт и выбранного типа, но последовательность этапов остается неизменной:


Заключение

Несмотря на сложность создания лабиринта, привлекательность его, при правильном оформлении, будет радовать ваш взор и вызывать восхищение у гостей. Поэтому, если приняли решение по обустройству собственного участка этим способом, аккуратно и предельно внимательно выполняйте все работы, чтобы не разочароваться в полученном результате. Не стремитесь сразу выполнить сложный проект, начните с наиболее простой формы, в дальнейшем корректируя ее по своему усмотрению и расширяя пространство.

Наверное, каждый владелец мечтает создать у себя в саду что-нибудь . Поэтому сегодня мы решили посвятить свою статью неповторимому по своей красоте и стилю лабиринту , который пришел к нам в из старой Европы. Именно там, в XVIII веке возникла мода на живые лабиринты из плотных и высоких растительных стен. Знатные гости в качестве развлечения разделялись на группы и искали выход из , решая, таким образом, своеобразные головоломки. Нередко под покровом ночи в укромных уголках лабиринта кавалеры назначали свидание дамам своего сердца, а в случае опасности незаметно скрывались в густом ограждении. Как это ни печально, но с приходом XX века со своими сложными геометрическими формами ушли в прошлое, а в ландшафтном дизайне начали цениться естественность и простота. Но сегодня мода на изысканную и сложную красоту начинает возрождаться, а вместе с ней на возвращаются и лабиринты, но уже более современные и разнообразные.

Что такое лабиринт?


Если обратиться к энциклопедии, то лабиринт представляет собой участок внутри парка, на котором проходы между плотной стриженой зеленью (например, липы, граба, лавра) специально запутаны. А вот словарь символов гласит, что является метафорой путешествия человека от рождения к смерти. Если же посмотреть с технической точки зрения, то лабиринт – это не что иное, как сложная система переходов и дорожек, которые ведут к определенной цели, а именно к центру лабиринта. Интересно, что лабиринты изображали на скалах еще наши предки, и такие рисунки были найдены по всему миру. Существует теория, что таким образом древние люди пытались запутать злых духов и оградить от них свои жилища. Впрочем, современные специалисты по тоже уверены, что грамотно выполненный лабиринт способен правильно направлять энергетические потоки и с достоинством выполнять функцию оберега. При этом абсолютно неважно, из каких материалов сделан лабиринт, насколько он огромен и запутан, главное здесь – правильно выбранный рисунок.

Общая композиция лабиринта


Если вы решили сделать лабиринт в своем саду , то, прежде всего, необходимо отвести под него подходящее место и определиться с площадью. Здесь нельзя не отметить, что большинство , причем их высота не имеет значения, замечательно смотрятся сверху. А это означает, что очень неплохо было бы видеть лабиринт из окна дома, например, со второго этажа. Что касается общей концепции сада, то лабиринт можно разместить вблизи зоны отдыха или на детской площадке в качестве места для игр и прогулок. Самой простой формой лабиринта является (можно сделать две смыкающиеся спирали). В более сложных формах лабиринта могут быть предусмотрены тупики, многочисленные входы и различные варианты пути к центру. Центральную площадку лабиринта нужно обязательно хорошо продумать, ведь именно она является целью запутанного путешествия. Можно поместить в центре лабиринта мощеную площадку для отдыха со столиком, скамейками, и горшками. Также центром лабиринта могут стать: садовая скульптура, пергола с вьющимися растениями, клумба, солнечные часы, маленький бассейн с фонтаном, интересное растение, к примеру, в маленьком лабиринте можно поставить деревце-бонсай на подставке. Давайте теперь рассмотрим более подробно, как можно сделать некоторые виды лабиринтов, которые получили наибольшее распространение в .

Лабиринт-клумба


Лабиринт из цветов является одним из наиболее простых в исполнении лабиринтов, под размещение которого совсем необязательно отдавать большие площади сада. Для лабиринта-клумбы нужно подбирать компактные, не раскидистые (шарообразными кустиками или с прямостоячими стеблями), не склонные к самосеву. Это необходимо для того, чтобы очертания лабиринта со временем не расплывались и он не превратился бы в простое смазанное пятно. Например, для обустройства лабиринта-клумбы категорически не подходят такие активно пересеивающиеся цветы, как и мак . Зато прекрасным выбором станут многолетние и однолетние бордюрные цветы: колеус, роза бордюрная, сальвия сверкающая, карликовый львиный зев и т.п. По цветовому решению лабиринт-клумба должен быть достаточно однородным, иначе зрительно его очертания не будут иметь четких линий. Однако если ваш лабиринт будет состоять из нескольких линий, например, двух смыкающихся спиралей, то их можно сделать контрастными между собой. Лабиринт из может быть компактным и предназначенным только для обзора, а может быть местом для прогулок, где цветочные ряды сочетаются с садовыми дорожками. Интересным вариантом является «исчезающий» цветочный лабиринт , расположенный на , который появляется только весной, но ежегодно возобновляется. Такой лабиринт выполняют из луковичных цветов, которые не требуют ежегодной выкопки: рябчиков, тюльпанов, нарциссов . Для того чтобы сделать подобный лабиринт своими руками, вам понадобятся: несколько метров , длинная веревка и достаточное количество цветочных луковиц. Закладку лабиринта-клумбы необходимо проводить в начале осени. Для этого при помощи веревки нужно проложить на газоне рисунок будущего лабиринта. Затем по контуру вырезать и снять газонный дерн так, чтобы получилась посадочная площадка с глубиной в две луковицы. Стандартная ширина цветочной ленты составляет 0.5 м, но может быть и меньше – здесь все зависит от общей площади лабиринта. Теперь требуется посадить луковицы в землю (желательно плотно), после чего накрыть их снятым дерном. Лабиринт готов, но его очертания вы увидите только весной, когда взойдут цветы.

Лабиринт из живой изгороди


Лабиринт из живой изгороди
, особенно если он выше человеческого роста, является, пожалуй, самым заманчивым, но и наиболее трудоемким вариантом, который ко всему прочему требует еще постоянного и тщательного ухода. К тому же площадь для такого лабиринта потребуется немалая – вряд ли удастся разместить такое чудо на традиционных шести сотках. Но если площадь вашего сада все-таки позволяет, и есть возможность и желание ухаживать за , то такой лабиринт вполне сможет претендовать на звание любимого места для прогулок и игр. Тем более что лабиринты из живой изгороди при надлежащем уходе на протяжении многих лет и даже столетий, не теряют своей привлекательности. Для того чтобы сделать лабиринт из вам понадобится схема, которую нужно будет наметить на земле, как план посадок. Обычно такую изгородь делают односторонней и стригут несколько раз за сезон, соблюдая все правила топиарного искусства. Для обустройства лабиринта из живой изгороди подойдут такие растения, как бирючина обыкновенная, самшит вечнозеленый, вяз мелколистный, кизильник блестящий, дерен кроваво-красный и белый, лавр обыкновенный . Для наглядного примера в качестве простейшего временного варианта можно сделать из однолетников. Для такой цели хорошо подойдет кохия веничная , высота которой достигает 1 м. Это растение создает зеленую густую массу и замечательно поддается стрижке и формовке.

Каменный лабиринт


Весьма интересным вариантом ландшафтной композиции является лабиринт из камня , который, как и лабиринт-клумба, может быть небольшой обзорной либо масштабной прогулочной композицией. Для создания каменного лабиринта желательно подбирать достаточно большие камни, приблизительно одинакового размера, цвета и формы. можно уложить цепочкой в один ряд либо соорудить из них невысокую кладку-бортик. К слову сказать, такой лабиринт будет украшать сад не только весной и летом, но и зимой: под снегом очертания смотрятся чрезвычайно эффектно. Огромным преимуществом каменного лабиринта перед многими другими видами является то, что после окончания строительства он практически не нуждается в уходе. Впрочем, не обязательно должен состоять исключительно из камней, его вполне можно оживить при помощи растительности. Особенно хорошо для такой цели подходят невысокие альпийские растения, молодила, седумы и т.п. Более того, каменную кладку можно запросто превратить в цветущую стену, посадив между камнями .

Фантазийный лабиринт


Фантазийный лабиринт
– самый непредсказуемый из всех видов лабиринтов, ведь законов здесь не существует и единственным ограничением является только предел вашей фантазии. Фантазийный лабиринт, в отличие от лабиринтов традиционных, не имеет четких очертаний, заранее спланированного рисунка и главной цели – центра. Главным здесь является запутанность , перекрестков и поворотов, словом должен присутствовать эффект неожиданности, когда ты не знаешь, что тебя ждет за следующим углом. Фантазийный лабиринт может занимать весь сад вместе с подходами к дому, зоной отдыха и . Основная идея состоит в том, что небольшие дорожки-переходы должны иметь частые повороты и даже «петли», чтобы, стоя на одном участке лабиринта, вы не могли видеть, что скрывается на другом, буквально в нескольких метрах от вас. Добиться такого эффекта можно за счет высоких растений, арок. Живые изгороди в фантазийном лабиринте не стригутся, они свободно разрастаются, заслоняя собой очередные сюрпризы.

За каждым поворотом вас может ожидать что-то новое: необычная ландшафтная композиция, изящная скульптура, беседка или скамеечка для отдыха. Но самое интересное, что продолжением фантазийного лабиринта может быть все что угодно, даже . Вдоль дорожек здесь вполне могут выстроиться бордюры из капусты или перголы с декоративной тыквой и вьющейся фасолью. Что касается овощных грядок, то их можно выполнить в форме закрученных спиралей - это подчеркнет их принадлежность к лабиринту.

Но на каком бы из вариантов вы не остановили свой выбор, в любом случае лабиринт будет одним из самых эффектных элементов и обязательно станет гордостью владельца сада. А напоминает вам, что из любого, даже самого сложного лабиринта есть выход, а потому даже самые запутанные мечты могут сбыться.

В этой статье речь пойдет о самом простом в реализации алгоритме генерации «идеального» лабиринта и его применении для поиска пути.

Мы рассмотрим алгоритм, основанный на бэктрекинге, позволяющий создавать лабиринты без циклов, имеющие единственный путь между двумя точками. Алгоритм не самый быстрый, довольно требователен к ресурсам, по сравнению с алгоритмом Эйлера или Крускала, но очень прост в реализации и позволяет создавать ветвистые лабиринты с очень длинными тупиковыми ответвлениями.

Заинтересовавшихся - прошу под кат.

В русскоязычном интернете очень мало информации по алгоритмам генерации лабиринтов, что и стало причиной для написания этой статьи.
Примеры кода на языке Си, а также полный исходный код проекта на GitHub доступны под лицензией GNU GPLv3.
Ссылки на англоязычные ресурсы и проект вы найдете в конце статьи.

Описание алгоритма
Замечание: предполагается, что изначально у каждой клетки есть стенки со всех четырех сторон, которые отделяют ее от соседних клеток.


2. Пока есть непосещенные клетки



    3. Уберите стенку между текущей клеткой и выбранной
    4. Сделайте выбранную клетку текущей и отметьте ее как посещенную.
  2. Иначе если стек не пуст

    2. Сделайте ее текущей
  3. Иначе
    1. Выберите случайную непосещенную клетку, сделайте ее текущей и отметьте как посещенную.

Вы, вероятно, заметили что при выполнении условия 3, готовый лабиринт вероятнее всего будет иметь изолированную область.
Это условие включено в алгоритм в порядке исключения, на практике при нормальной работе алгоритма и правильных исходных данных, оно не выполняется никогда.

Реализация
Как уже сказано выше, предполагается, что при начале работы алгоритма все клетки отделены стенками.
Иллюстрация работы алгоритма
 0.    < - Начальная матрица.

1.    < - Выбираем начальную точку стартовой.

2.1.   < - Перемещаемся к случайному непосещенному соседу, пока таковые есть.

2.2.   < - Непосещенных соседей нет. Возвращаемся назад по стеку, пока нет непосещенных соседей.

2.1.   < - Непосещенные соседи есть. Перемещаемся к случайному непосещенному соседу.

2.    < - Нет непосещенных клеток. Лабиринт сгенерирован.

Программный код
Приступаем к самому интересному.

Начнем действовать по порядку и сначала сгенерируем начальную матрицу, с которой будет работать алгоритм.
Для удобства условимся, что все типы клеток заданы в перечислении.

Int maze; //создаем матрицу - двумерный массив for(i = 0; i < height; i++){ for(j = 0; j < width; j++){ if((i % 2 != 0 && j % 2 != 0) && //если ячейка нечетная по x и y, (i < height-1 && j < width-1)) //и при этом находится в пределах стен лабиринта maze[i][j] = CELL; //то это КЛЕТКА else maze[i][j] = WALL; //в остальных случаях это СТЕНА. } }
Теперь, когда все приготовления сделаны, можно приступать к генерации.

Typedef struct cell{ //структура, хранящая координаты клетки в матрице unsigned int x; unsigned int y; } cell; typedef struct cellString{ cell* cells; unsigned int size; } cellString;
Структуры значительно упростят жизнь при обмене информацией между функциями.

Отрывок кода, отвечающий за генерацию:

Cell startCell = {1, 1} cell currentCell = startCell; cell neighbourCell; do{ cellString Neighbours = getNeighbours(width, height, maze, startPoint, 2); if(Neighbours.size != 0){ //если у клетки есть непосещенные соседи randNum = randomRange(0, Neighbours.size-1); neighbourCell = cellStringNeighbours.cells; //выбираем случайного соседа push(d.startPoint); //заносим текущую точку в стек maze = removeWall(currentCell, neighbourCell, maze); //убираем стену между текущей и сосендней точками currentCell = neighbourCell; //делаем соседнюю точку текущей и отмечаем ее посещенной maze = setMode(d.startPoint, d.maze, VISITED); free(cellStringNeighbours.cells); } else if(stackSize > 0){ //если нет соседей, возвращаемся на предыдущую точку startPoint = pop(); } else{ //если нет соседей и точек в стеке, но не все точки посещены, выбираем случайную из непосещенных cellString cellStringUnvisited = getUnvisitedCells(width, height, maze); randNum = randomRange(0, cellStringUnvisited.size-1); currentCell = cellStringUnvisited.cells; free(cellStringUnvisited.cells); } while(unvisitedCount() > 0);
Как видно, реализация алгоритма проста и абстрактна от теории, как говорится, «справится даже ребенок».
Чтобы не перегружать статью, код функций, используемых в вышеприведенном отрывке, под спойлером.

Код функций

Функция getNeighbours возвращает массив непосещенных соседей клетки

CellString getNeighbours(unsigned int width, unsigned int height, int** maze, cell c){ unsigned int i; unsigned int x = c.x; unsigned int y = c.y; cell up = {x, y - distance}; cell rt = {x + distance, y}; cell dw = {x, y + distance}; cell lt = {x - distance, y}; cell d = {dw, rt, up, lt}; unsigned int size = 0; cellString cells; cells.cells = malloc(4 * sizeof(cell)); for(i = 0; i < 4; i++){ //для каждого направдения if(d[i].x > 0 && d[i].x < width && d[i].y > 0 && d[i].y < height){ //если не выходит за границы лабиринта unsigned int mazeCellCurrent = maze.y].x]; cell cellCurrent = d[i]; if(mazeCellCurrent != WALL && mazeCellCurrent != VISITED){ //и не посещена\является стеной cells.cells = cellCurrent; //записать в массив; size++; } } } cells.size = size; return cells;
Функция removeWall убирает стенку между двумя клетками:

MazeMatrix removeWall(cell first, cell second, int** maze){ short int xDiff = second.x - first.x; short int yDiff = second.y - first.y; short int addX, addY; cell target; addX = (xDiff != 0) ? (xDiff / abs(xDiff)) : 0; addY = (yDiff != 0) ? (yDiff / abs(yDiff)) : 0; target.x = first.x + addX; //координаты стенки target.y = first.y + addY; maze = VISITED; return maze; }
Сначала вычисляется значение разности координат второй и первой точек. Очевидно, значение может быть либо отрицательное, либо положительное, либо 0.

Надо найти такие координаты xy, чтобы при сложении их с координатами первой точки получались координаты стенки.

Так как мы точно знаем, что вектор разности между координатами стенки и первой точке равен либо (|1|, 0) либо (0, |1|), мы можем этим воспользоваться.

Таким образом, аддитив для x координаты при xDiff != 0 будет равен xDiff / |xDiff|, при xDiff = 0, нулю. Для y соответственно.
Получив аддитивы для x и y, мы легко вычисляем координаты стенки между первой и второй клетками и назначаем клетку по этим координатам посещенной.


Итак, теперь у нас есть генератор лабиринтов, который может строить запутанные лабиринты, размер которых ограничен только размером оперативной памяти.

В итоге, мы можем получить что-то такое:

Лабиринты. Осторожно, трафик!

100x100


  500x500



Генерация работает, теперь дело за малым: найти в таком лабиринте выход.

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

И все еще сильнее упрощается, так как нам больше не надо убирать стенки.

Алгоритм поиска пути бэктрекингом:
1. Сделайте начальную клетку текущей и отметьте ее как посещенную.
2. Пока не найден выход
  1. Если текущая клетка имеет непосещенных «соседей»
    1. Протолкните текущую клетку в стек
    2. Выберите случайную клетку из соседних
    3. Сделайте выбранную клетку текущей и отметьте ее как посещенную.
  2. Иначе если стек не пуст
    1. Выдерните клетку из стека
    2. Сделайте ее текущей
  3. Иначе выхода нет

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

Критерий нахождения «выхода» очень прост: достаточно сравнить координаты текущей точки и координаты «выхода»: если они равны, путь между стартовой и выходной точками найден.

Посмотрим что вышло:

Вот и все, что нужно для самой простой реализации генератора случайных лабиринтов.

Для тех, кто заинтересовался, полный исходный код проекта на GitHub.

По традиции, еще со времен Древних Египта и Греции, под лабиринтом понимают участок местности с дорожками, тропинками, которые создают замысловатый рисунок и при этом ведут к центральной части. Изгородь из растений, высаженных в подобной форме, стала появляться в средневековых садах к середине XV в. Наверняка все любители Джерома К. Джерома помнят, как его герои блуждали по лабиринту (кстати, немаленькому – длина аллей ок. 500 м), находящемуся в Хемпптон-корте. Интересно, что хоть он был создан аж в 1690 году, но пройти по следам веселых персонажей из «Трое в лодке, не считая собаки» можно и сегодня.

Не чужда изгородь в подобной форме и русским садам, в усадьбах Архангельское, Кусково, Петергофе аллеи из аккуратно подстриженных кустов формировали четкий рисунок. Со временем композиции из живой изгороди усложнялись, создавая запутанные конструкции. Переменчивая мода на какое-то время забыла о лабиринтах, но в наши дни они снова стали объектом интереса ландшафтных дизайнеров.

Лабиринт у себя на участке

Если размеры участка позволяют, то вполне можно создать садовый лабиринт, и у этой идеи есть много достоинств:

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

Лабиринты бывают разных видов, например, гармоничной частью пейзажного сада станет фантазийный или цветочный, в регулярный сад органично впишется практически любой вариант. Посадочный материал для создания такого элемента ландшафта достать не проблема, ассортимент растений на рынке очень широкий, поэтому всегда можно подобрать растения, подходящие для запланированной высоты бордюра или стенки.


Растения, формирующие изгородь, определяют размеры композиции, можно создать детский мини-вариант диаметром до 2 метров, а можно и с поперечников в 10-20 м, из которых далеко не сразу найдешь выход.

Растения для сада-лабиринта

Маленький детский лабиринт можно создать даже из однолетних растений (кудрявая петрушка, бархатцы), горшков с цветами, небольших камней. Ну а для большого используют кустарники. Подбирают такие кустарники, стрижка и обрезка которых не связана с большими сложностями, а это необходимо для придания лабиринту определенной формы и регулирования размеров его стенок.

Для декоративной композиции средних размеров выбирают растения высотой до 50 см, например можно посоветовать спирею низкорослую, чашечковый зверобой, самшит, альпийскую смородину. Перечисленные виды растут в средней полосе. Если же замахнуться на большой лабиринт, в котором и взрослые люди проплутают некоторое время, то придется подбирать деревья, вырастающие до 3 м. Дизайнеры рекомендуют в этих целях использовать шиповник, барбарис Тунберга, граб, магонию, клен татарский, тис. Подойдет и уже упоминавшийся выше самшит, еще можно взять боярышник, иргу, форзицию среднюю.

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


Традиционная форма композиции - круг, но вполне допустимо устроить сад-лабиринт в форме квадрата, треугольника или в виде букв – инициалов человека. Вариантов интересных можно придумать множество, подключите к этому своих детей, чтобы и они поучаствовали в процессе. Простая схема включает вход, пару поворотов, выход. Среди простых форм можно назвать спираль, в которой все тропинки смыкаются в центре. Можно выбрать сквозную схему без выраженного центра, а если он будет, то расположить в нем фонтан или уютную беседку, а то и пруд или патио.

Лабиринтные формы

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

Выбор места для композиции

Окинуть взглядом лабиринт можно только сверху, поэтому целесообразно устраивать его рядом с возвышенностью, с которой будет возможно насладиться его видом сверху. Точкой обзора может стать и второй этаж дома. Обычно лабиринт располагают в зоне отдыха, неподалеку от детской площадки, так как для детей он обладает притягательной силой и становится любимым местом их игр.


Территориально этот элемент ландшафта можно устроить и между домом и садом, огородом. Впрочем, советуем предусмотреть и более короткую обходную дорожку с интересным покрытием.

Садовый лабиринт из живой изгороди

В ландшафтном дизайне различают несколько типов лабиринта по основному «строительному материалу». Живая изгородь до 3 метров высотой – идеальный материал. Но помните, что внешняя красота такого лабиринта сопряжена с необходимостью уделять изрядно сил и времени поддержанию деревьев в надлежащем виде, в том числе стрижке, обрезанию веток. Конечно, под устройство этого варианта требуется довольно большая площадь, но если уж вы можете себе такое позволить, то получите чудесное место для прогулок, а ваши дети – для игр.

Лабиринт из изгороди отличается долговечностью (при хорошем уходе, конечно). Быстро создать такой можно методом высадки однолетников, например кохии веничной, которая достигает 1 метра, обрастает густой листвой и хорошо формуется. Естественно на будущий год придется высаживать растения снова или все же приступать к сооружению композиции из многолетних кустарников.

Цветочный лабиринт

Это очень оригинальная организация цветника, цветы в данном случае высаживаются обычно по спирали. Лучше всего подойдут компактные цветы с прямыми стеблями и правильной формой. Так как цветочный лабиринт невысок и его можно охватить взглядом без проблем, то его форма должна быть эстетичной. Поэтому от чересчур раскидистых цветов придется отказаться, а также тех, что склонны к самосеву (мак, эшшольции). Из-за самосева композиция рискует быстро потерять изначально задуманную форму, контуры смажутся и рисунок потеряет в эстетичности.

Хорошие варианты для оформления – львиный зев, роза бордюрная, кустовая петуния.

Чтобы получить эстетичный вид, необходимо соблюдать однородную гамму оттенков и строгость в контурах, дабы границы клумб не размазывались. Можно устроить лабиринт не из одной, а из двух спиралей или линий, которые в определенном месте будут смыкаться. В таком можно высаживать растения двух контрастирующих окрасок.

Лабиринт может стать оригинальной клумбой, от созерцания которой всегда можно будет получить эстетическое. Но цветочную конструкцию можно приспособить и для прогулок. В этом случае между лентами из цветов прокладываются мощеные или присыпанные гравием дорожки, повторяющие лабиринтные проходы.

Каменный лабиринт

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

На каменных стенах будут интересно смотреться лианы, ампельные виды (плющ, ипомея, клематис и др.), а в лабиринте из небольших камней можно высадить очитки, молодилу.

Фантазийная композиция

Этот тип наиболее близок к исконной сущности лабиринта – сооружения с крайне запутанными тропинками, по которым можно блуждать очень долго в поисках верной дороги. В фентезийном лабиринте не акцентируется центр, его просто нет, зато в изобилии присутствуют многочисленные тропинки, оканчивающиеся тупиком, множество похожих друг на друга поворотов и перекрестков. Войдя в такой, поневоле начинаешь ощущать себя искателем приключении.

Фантазийная композиция может охватить собой весь сад вместе с зоной отдыха, площадкой для детей и прочими дорожками. Только надо делать переходы делать короткими и часто чередовать их с поворотами, петлями. Тогда в поле зрения будет лишь пара-тройка метров. Такой эффект запутанности достигается за счет использования пергол, вьющихся растений на трельяжах, арок.

Каменный лабиринт в саду (видео)

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

Прогулка по лабиринту будет особенно приятна, если за поворотом путника будет ждать красивая скамья, изящная клумба или оригинальная скульптура.

Создание лабиринта своими руками - процесс крайне увлекательный и творческий, периодически в него можно вносить изменения и воплощать новые идеи, так что это может стать любимым занятием, а выстроенный самостоятельно объект — наглядным свидетельством вашей креативности и законным поводом для гордости. Рекомендуем прочесть статью о