Рубрика «головоломки» - 4

В этом посте описывается генератор уровней для моей игры-головоломки Linjat. Пост можно читать и без подготовки, но он легче усвоится, если сыграть в несколько уровней. Исходный код я выложил на github; всё обсуждаемое в статье находится в файле src/main.cc.

Примерный план поста:

  • Linjat — это логическая игра, в которой нужно закрыть все числа и точки в сетке линиями.
  • Головоломки процедурно генерируются при помощи комбинации из солвера, генератора и оптимизатора.
  • Солвер пытается решить головоломки так, как это делал бы человек, и присваивает каждой головоломке оценку интересности.
  • Генератор головоломок создан таким образом, чтобы можно было с лёгкостью менять одну часть головоломки (числа) и при этом все остальные части (точки) менялись таким образом, чтобы головоломка оставалась решаемой.
  • Оптимизатор головоломок многократно решает уровни и генерирует новые вариации из наиболее интересных, найденных на текущий момент.

Правила

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

Создание процедурного генератора головоломок - 1

Цель игрока — прочертить вертикальную или горизонтальную линию через каждое из чисел при соблюдении трёх условий:

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

Пример решения:

Создание процедурного генератора головоломок - 2

Ура! Дизайн игры готов, UI реализован, и теперь единственное, что осталось — найти несколько сотен хороших головоломок. А для подобных игр обычно не имеет смысла пытаться создавать такие головоломки вручную. Это работа для компьютера.
Читать полностью »

Поставлен рекорд по сборке кубика Рубика … ногами - 1

На Хабре регулярно публикуются новости о рекордах по сборке кубика Рубика. Последнее достижение принадлежит австралийцу Феликсу Земдегсу, который смог решить головоломку всего за 4,221 секунды. Так быстро собирать кубик могут лишь те люди, кто регулярно (и помногу) тренируются. Тот же Феликс купил свой первый кубик в возрасте 12 лет. В 2010 он поставил первый рекорд мира, ну а в прошлом году сделал вообще практически невозможное.

Ну а теперь появился еще один рекордсмен, который собирает кубик ногами. Понятно, что для выполнения более-менее нормальных манипуляций с головоломкой ногами нужны тренировки. И действительно, к текущему результату в 16,96 секунд чемпион по имени Даниэль Роуз-Левин шел около пяти лет.
Читать полностью »

Puzzle Script — это минималистичный игровой движок для создания головоломок для HTML5, имеет открытые исходники. Примеры готовых игр можно посмотреть здесь.

Часть 1. Создаём первую игру на Puzzle Script.

Puzzle Script — это бесплатная онлайн-программа, которая используется для создания игр-головоломок. Наиболее известен она благодаря созданию головоломок с толканием блоков наподобие моей The Nodus. В этой части мы создадим игру, изучив базовые функции Puzzle Script, а в следующей приступим к программированию.

Создание игр-головоломок на Puzzle Script - 1

Перейдите на веб-сайт движка. Нажмите Make a Game, чтобы открыть редактор Puzzle Script.
Читать полностью »

Предупреждение врача. Остерегайтесь этих головоломок. Побочные эффекты могут включать потерянное послеобеденное время, скомканные волосы и восклицания «А-а-а-х, вот как это делается» настолько громкие, что могут треснуть оконные стёкла.

Несколько месяцев назад я наткнулся в твиттере на математические головоломки Катрионы Ширер. Они сразу меня увлекли: каждая головоломка такая осязаемая, ручной работы, словно просит её решить. И на каждую вы можете легко потратить час времени, а то и больше.

Катриона разрешила мне подвесить вас на эти задачки — и поделилась 20 своими любимыми головоломками. Она даже удовлетворила моё любопытство и восхищение, дав интервью (см. в конце статьи).

Наслаждайтесь. И не говорите, что врач не предупреждал.
Читать полностью »

Кубик Рубика — уже не просто легендарная игрушка-головоломка, а скорее синоним чему-то сложному, над чем нужно задуматься.

С 70х годов прошлого века создатели кубиков традиционно шли путем постоянного усложнения «игрушки», добавляя лишние клетки, меняя и совершенствуя форму. Однако теперь все поменялось, и кубики стали упрощать.

Три умных кубика Рубика: Xiaomi, Roobo и GoCube - 1

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

Существует множество игр жанра «пазл-платформер», но мне редко удаётся найти такую, в которой правильно соблюдён баланс сюжета, головоломок и графики. Всегда находится какой-нибудь аспект, который меня напрягает. Я очень хотел создать игру с красивой графикой, интересным сюжетом и классическими платформенными головоломками, но стремился ещё и к тому, чтобы все эти три аспекта глубоко сочетались друг с другом. В In The Shadows я старался сделать так, чтобы каждый аспект имел своё обоснование. Сделать так, чтобы всё работало вместе — сложная задача, которая сама по себе является головоломкой.

Дизайн игр-головоломок на примере In The Shadows - 1

Дневники разработки In The Shadows, собранные за три года работы


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

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

Мы в компании «Флант» любим IT-квесты — те, кто устраивался к нам на работу, прекрасно об этом знают. И так замечательно сложилось, что в свободное от основной занятости время мне посчастливилось придумать ещё одну головоломку.

Решение опубликовать её в хабе системного администрирования обусловлено тем, что в большей степени мы относим себя к этой категории айтишников, однако полное прохождение квеста требует проявления смекалки в разрезе более общих компетенций из области ИТ. В общем, если вам, как и нам, даже (и особенно!) в выходные (а может, уже и в пятницу?) хочется занять свой мозг интересными задачами — welcome! Мы даже обещаем приз самому быстрому победителю.Читать полностью »

image— Как взмывают ангелы дружно в ряд…
— Дружно в ряд, дружно в ряд…
— Поднимают головы! И летят! И летят!..

сэр Терри Пратчетт «Ночная стража»

Рано или поздно, всегда наступает момент, когда количество неизбежно переходит в качество. Накапливаются новые игры, нуждающиеся в осмыслении, проект обрастает новыми возможностями, возможности комбинируются между собой. Если всё не рушится под собственной тяжестью, результат может превзойти самые смелые ожидания. То что не убивает — делает нас сильнее!
Читать полностью »

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

Сложно ли сделать из мухи слона? - 1
Сальвадор Дали. Искушение св. Антония. 1946. (Фрагмент).
Бельгийский Королевский музей изящных искусств (Брюссель).

Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js