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

в 7:49, , рубрики: javascript, mineslitter, minesweeper, sapper, логические игры, минëр, разработка игр, сапëр, сапёр

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

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

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

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

Быстрый старт

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Автор: Сергей Чибиряев

Источник

* - обязательные к заполнению поля


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