
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)
 - Ezhyg22.04.2015 16:48+1- Кнопки да и вообще оформление, очень напоминают игру Pudding Monster компании Zeptolab.  - PapaBubaDiop Автор22.04.2015 17:03- Нещадно эксплуатирую их тему. Научился рисовать в этом стиле, как Вам лодка на заставке?  - Ezhyg22.04.2015 18:01- А так можно? Кстати их фоны — всё-таки симпатичнее, хотя там работали художники за деньги. 
 
 Да я ваще в восторге — «хатеть!»… только у меня ойПадика нету. - PapaBubaDiop Автор22.04.2015 18:35- Спасибо за комментарий — в нем много скрытого юмора. Как раз фоны я не рисовал, а безвозмездно позаимствовал)) 
 К тому же у меня эти обои живые — сверху струится вода, эффект- очуметь, не встать. На iPhone 6+ надо смотреть.
 
 
 
 - Kapitan_Vanya22.04.2015 17:49- «Бревна и мины — древняя немецкая игра» — надо что-то убрать: либо «мины», либо «древняя» 
 - Goodkat22.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 процентов. Самые трудные (по длине решения) оставил. Потом плюнул и оставил все.
 Они все интересные, особенно несходящиеся. - Goodkat22.04.2015 19:05+3- Так там ещё и несходящиеся есть… 
 Наверное, лучше удалить аппу от греха подальше - PapaBubaDiop Автор23.04.2015 01:59- Да, надо бросать это дело. У меня в трех из 8-ми соседних кубиках раздаются звуки характерных взрывов) 
 
 
 
 
           
 
nepster
>> Если тема интересная — я опубликую алгоритм.
Конечно публикуйте!