Минëр: сапëр наоборот

Что будет, если взять известную игру сапëр и изменить игровой процесс на обратный? Получится игра минëр

evltjefj5dqmvzc6w64sbubix7c.png


Так выглядит расклад в минëре на новичке.

Если задача в сапëре разминировать поле, то задаче в игре минëр наоборот — заминировать.

Быстрый старт
  • Цель: расположить на игровом поле заданное количество мин
  • Каждая цифра означает количество мин, которые нужно расположить в квадрате 3×3 с центром в этой клетке
  • ПКМ — поместить мину в клетку
  • ЛКМ — пометить клетку, как пустую
  • Средняя кнопка мыши — пометить все смежные клетки как пустые, если нажатая клетка готова
  • Играть тут schibir.github.io/mineslitter


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

В отличие от сапёра здесь игроку доступна сразу вся информация об игровом поле. Каждая цифра означает количество мин, которые нужно расположить в квадрате 3×3 с центром в этой клетке. Вот так выглядит решенное поле:

kcbundsmqzjp1mzzvi-b1aqc49q.png


При этом должно получиться корректное поле с точки зрения сапëра

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

_grw8clczmpgndhwcka16nh5r-s.png


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

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

r25fvelidq37ibo66gx6sdm5pa4.png


Как вообще можно начать минировать такое поле? Один из трюков, который можно использовать — это H-паттерн. Найдите на поле две смежные клетки с цифрами отличающимися друг от друга на 3 (т.е. 1–4; 2–5; 3–6; 4–7; 5–8). Теперь можно заминировать три другие клетки со стороны большей цифры и пометить как пустые со стороны меньшей цифры:

sslqgjntel9db-rblifr0envo5y.png


Такой же паттерн работает и у бортов, только там пары клеток должны отличаться на 2:

pcplnzy1e98a1wilxtu2neylyns.png


Где поиграть?


Исходники: github.com/schibir/mineslitter
Играть тут: schibir.github.io/mineslitter

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

Мои рекорды на момент написание этого поста:

b9rfhf-97py35u6kb2ot1dlkl_k.png


Всем спасибо за внимание. Не забывайте делиться своими рекордами.

© Habrahabr.ru