Haken und Minen
Бревна и мины — древняя немецкая игра. Сюжет игры напоминает шахматные этюды.
Заинтересовавшись головоломкой, я проверил Appstore. Поиск не дал результата.
И я восполнил мировой пробел.
Правила игры
Напоминаю правила игры — дано шахматное поле 8 на 8 клеток. На нем брошены N мин и N бревен. N в диапазоне от 2 до 6.
Бревна можно двигать по правилу шахматной ладьи. Перепрыгивать через другие бревна нельзя. При пересечении мины и бревна — оба предмета снимаются с доски. Цель — съесть все мины и все бревна.
Если бревно при движении не встречает препятствия — оно улетает с доски, этюд считается нерешенным.
Осмелюсь предложить Вам три этюда, решение которых доставит математическое удовольствие.
Этюд номер 5 с разоблачением
На iPhone начальный расклад этюда номер 5 выглядит довольно художественно.
В тексте и цифрах расклад выглядит строже.
11-2--
---2x-
x-----
33--x-
4-x---
4-x---
------
----55
Как видно, если первым ходом сдвинуть бревно номер 4 направо — оно съест сразу две мины и задача становится нерешенной.
Решение этюда номер 5
Время решения не имеет значения, я завел его исключительно для любителей скоростного вождения пальцами.
Кроме того, я ограничил поле пропорциями iPhone (6 на 8), отчего игра не потеряла сложности и интеллектуального шарма.
Программа генерирует 10000 раскладов. Некоторые очень интересны, по крайней мере для меня. Предлагаю и Вам погреть мозги.
Три этюда 6, 11 и 23
Кто желает порешать этюды не в уме, но на личном iPhone — добро пожаловать в тестеры со своим Apple ID.
Игры в магазине нет. Virgin.
Заключение
В процессе разработки, вдохновленный рассказом blind_designer, я численно смоделировал движение поверхностных волн.
Если тема интересная — я опубликую алгоритм. Рейтинг заменит опрос.
Для обладателей iPhone в магазине есть игра, в которой я реализовал данный алгоритм для решения другой классической задачи про капусту, козу и волка.
Приложение бесплатное, ссылка по картинке.
На старых iPhone приложение Paper Cutter подтормаживает. В новой головоломке Haken und Minen тормоза убраны за счет оптимизации -O3 и выкидывания оператора if внутри циклов.
Всех бывших пионеров — с праздником.
Комментарии (10)
Ezhyg
22.04.2015 16:48+1Кнопки да и вообще оформление, очень напоминают игру Pudding Monster компании Zeptolab.
PapaBubaDiop Автор
22.04.2015 17:03Нещадно эксплуатирую их тему. Научился рисовать в этом стиле, как Вам лодка на заставке?
Ezhyg
22.04.2015 18:01А так можно? Кстати их фоны — всё-таки симпатичнее, хотя там работали художники за деньги.
Да я ваще в восторге — «хатеть!»… только у меня ойПадика нету.PapaBubaDiop Автор
22.04.2015 18:35Спасибо за комментарий — в нем много скрытого юмора. Как раз фоны я не рисовал, а безвозмездно позаимствовал))
К тому же у меня эти обои живые — сверху струится вода, эффект- очуметь, не встать. На iPhone 6+ надо смотреть.
Kapitan_Vanya
22.04.2015 17:49«Бревна и мины — древняя немецкая игра» — надо что-то убрать: либо «мины», либо «древняя»
Goodkat
22.04.2015 18:40Программа генерирует 10000 раскладов.
То-то я второй день играю и до конца пройти не могу :)
Расскажите об алгоритме генерации уровней и расчитывании сложности.PapaBubaDiop Автор
22.04.2015 19:01Генерация этюдов классическая. Завел датчик псевдослучайный последовательности.
- (int)microsoft_rnd { holdrand = holdrand * 214013 + 2531011; return ((holdrand >> 16) & 0x7FFF); }
Задавая переменную holdrand = puzzleNumber автоматически получаешь уникальный расклад, соответствующий данному числу.
Первые 35 раскладов проверил и выбрал вручную с приятелем.
Затем приятель написал на питоне решатель и в диапазоне 21000-22000 проверил все решения. Сходятся — более 95 процентов. Самые трудные (по длине решения) оставил. Потом плюнул и оставил все.
Они все интересные, особенно несходящиеся.Goodkat
22.04.2015 19:05+3Так там ещё и несходящиеся есть…
Наверное, лучше удалить аппу от греха подальшеPapaBubaDiop Автор
23.04.2015 01:59Да, надо бросать это дело. У меня в трех из 8-ми соседних кубиках раздаются звуки характерных взрывов)
nepster
>> Если тема интересная — я опубликую алгоритм.
Конечно публикуйте!