DIY Minesweeper из подручных материалов

Не успел к пятнице, но пусть будет воскресный пост. Disclaimer: описанная ниже самоделка не претендует на место в зале DIY-славы. Однако идея мне показалась забавной, а раз так, то чего бы не воплотить. А если уж воплотили, то чего бы не рассказать об этом. Итак, далее вас ждёт небольшой рассказ о том, как сделать настольную версию «Сапёра» из всякой подручной мелочи.

Преамбула

Как ни странно, плоды очевидной мысли реализовать «Сапёра» в физическом мире не слишком обильно представлены в интернете. Сходу могу назвать разве что пару не слишком ламповых проектов: «Сапёр» на липких заметках и «Сапёр» с тактильным интерфейсом. Первое как-то совсем на один раз, а второе слишком масштабно, да и без электроники не обошлось. Я тоже не могу совсем без софта, но он всё же будет работать «за кулисами», так что это не считается.

Хард v1

Итак, для начала берём обычный жёсткий прозрачный файлик для документов вот такого типа:

d12adcd62d27ddf49cce523449bfcc78.jpg

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

В результате получится примерно такой поддон:

41371ccfb38c6b0c381cd11c2d3e5ac4.jpg

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

Теперь нужно подготовить прямоугольные картонные квадратики. Если рассчитывать на игровое поле 7×9 (как у меня), то понадобится, соответственно, 7×9 = 63 квадрата со стороной примерно 26 миллиметров.

Уже на этом этапе игру можно протестировать. На листе A4 распечатываем уровень, не глядя кладём его под файлик с пустым листом внутри (чтобы он закрывал картинку), и помещаем полученный «бутерброд» в поддон. Все клетки закрываются картонными квадратиками, пустой лист аккуратно вынимается из файлика, и можно играть!

На фотографии ниже показан немного улучшенный вариант этой версии:

7330d573baf6d64ab8e1951b36fc0415.jpg

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

Софт

Уровни генерируются и печатаются с помощью макроса MS Excel. Этот способ позволил быстро вручную подогнать размеры клеток под бумагу (крайние клетки могут быть у́же, потому что дальше всё равно поля) и нарисовать границы. В макросе очевидным образом настраивается количество мин:

4edf1de0470641db532604358bb4923c.jpg

Для такого поля, как мне кажется, мин должно быть десять-одиннадцать штук.

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

Оба недостатка удалось решить одним ударом: при выборе пунктов Mine count и Zero cell мины не генерируются по соседству с левой верхней клеткой. Таким образом, все соседние с ней клетки оказываются безопасными, а сама клетка используется для вывода общего количества мин на уровне. Предусмотрен и более «хардкорный» вариант с индикатором мин, но без гарантий безопасности. («Для реализма», как мне было предложено).

Хард v2

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

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

f00e043601a6bacf28b4f96695a54e71.jpg

Есть поддон для бумаги, сверху наклеена прозрачная плёнка и сетка из реек, уровень вырос до размера 8×11 клеток (14 мин). Ну и фишки тоже изготовлены из дерева (при помощи пилы и наждачной бумаги…)

Вот, пожалуй, и всё. В соответствии с веяниями времени игровой процесс снят на видео:

Макрос тоже на всякий случай приложу.

© Habrahabr.ru