Pull to refresh

Comments 39

я обычного минёра не понимал никогда, а инвертированный взорвал мне мозг :)

Вы перепутали сапёра и минёра.
Сапёра несложно понять, если начинать с лёгкого режима. Лучше попробуйте, это увлекательно.
Есть и вот такой интересный вариант, где минами уничтожаем зомби:


Заголовок спойлера

Скорее оговорился, а не перепутал. Я не люблю интеллектуальные игры. Наверное самое навороченное что проходил это The Talos Principle.

Талос это лучшая игра из всех что я играл. Скоро выходит 2-я часть.

Думаю попробовать его пройти в VR на платформе.

Главное не сорваться на телепорты когда ходить устану :)

В VR талос очень сочен.

Мне тоже взорвал! Игра - просто бомба!

Оригинально. Оказывается много интересного можно узнать, взглянув на старые игры по новому! Благодарю за статью. Очень увлекательно.

Теперь добавить поддержку полей из Professional Minesweeper'а:

А на NG+ появляется по дополнительному измерению.

На легком уровне споткнулся, а как увидел сложный, так сразу всё понял - давно уже на телефоне играю в то же самое, но с названием Fill-a-pix. Там ещё и картинку в результате получаешь.

UFO just landed and posted this here

Если я правильно вас понял, то вы скорее всего не поняли правила, и это не одна клетка-сосед, а пустая клетка

Похоже на японский кроссворд, поэтому следующий вариант — цветной Минёр, т.е. с цветными минами и цифрами. Интересно, будет ли это сверхлёгким режимом или снова вылезут свои особенности?

А если в цифре учитывать количество мин именно вокруг этой клетки, не включая её саму — так не получается?
Ещё предложил бы дополнительное удобство — рамка или подсветка квадрата 3х3 при наведении курсора.

А если в цифре учитывать количество мин именно вокруг этой клетки, не включая её саму — так не получается?

Пробовал так сделать, но было не удобно. Наверное, просто привык к текущему варианту

Ещё предложил бы дополнительное удобство — рамка или подсветка квадрата 3х3 при наведении курсора.

Такого не было в оригинальном сапере. А вот продавливание смежных клеток при нажатии на колесико я хотел таки сделать

Пробовал так сделать, но было не удобно.

В итоге это не совсем Сапёр-наоборот из-за этого, "такого не было в оригинальном Сапёре" :)


Клетки на краях подняты (они гарантировано пустые), чтобы тоже соответствовало Сапёру? Если это понять, то дело идёт сразу быстрее.

Но мне неизвестно всегда ли одному и тому же раскладу соответствует
строго одно расположение мин. Это похоже на правду, но доказать я не
могу.

Очевидно что нет.
Неоднозначность в сапёре - это и есть 2 решения одной и той же позиции в минёре.

Долго играть и не пришлось

неоднозначность

Здесь нет неоднозначности. 5 - пустая, верхняя 2 - мина, следующая 2 - пустая, затем опять мина. Тут все просчитывается

UPD: Тут было рассуждение, основанное на том, что я не беру в расчет цифры которые уже с бомбами, посыпаю голову пеплом: вы совершенно правы

Можно проще. Просто квадрат из четырех единиц на поле 2х2 - имеет четыре решения.

К сожалению, всё придумано до нас, и вы переизобрели Fill-a-Pix, как и указал nullemotion.
Поэтому снова предложу вам попробовать сделать цветную версию, т.к. такую в Интернете не нашёл. Это будет что-то новое.

Интересная модификация:) С таким успехом и до 5D минёра с путешествиями во времени и мультивселенными недалеко!

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

Если равномерно положить мины от края доски до края(для длин полей не кратных 3), то можно расставить мины так, что их нельзя найти точно.
Пример поля 1х5
х00х0 и 0х00х оба дадут поле значений 11111

Кажется вы правы, значит на подобном поле нельзя путем логических рассуждений однозначно расставить мины

Есть ощущение переходящее в уверенность, что потеря информации происходит на краях поля. В том же сапере, угадывать обычно приходится на краях поля.
Доказать, может быть возьмусь. Задача выглядит интересной и нетронутой.

Если запретить ставить мины в первую строчку и первый столбец, то есть простой алгоритм, находящий единственное возможное решение: в цикле находим первую вершину (самую верхнюю, среди равных самую левую) с недостатком мин-соседей и ставим мину справа снизу от нее. Легко видеть, что в другие клетки мины поставить нельзя либо из-за запрета, либо из-за наличия сверху или слева соседа, которому мин уже достаточно. При этом, запретить сильно меньше клеток, сохранив единственность, тоже не получится, потому что всегда может быть полоска 3 \times n из единиц, вертикальная или горизонтальная, у которой есть три разных решения, хотя бы два из которых всегда совпадают по количеству мин.

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

особенно приятно когда такая ситуация возникает в конце игры, особенно на максимальной сложности

Отлично, но надо приноровиться мыслить квадратами 3x3.
Ставя мину, мы из всех клеток в квадрате 3x3 вычитаем единичку. Если всегда держать это в голове, то дальше как по маслу пойдет.

И всегда надо следить чтобы оставались ровные квадраты. Если где-то выпирают не 3, а 1-2 клетки, значит какая-то мина стоит неправильно.

Заглянул в код. Генерацию игры можно сделать с одной попытки, так чтобы полное количество вызовов Math.random было равно количеству мин. Для этого понадобится массив indexes = new Array(w * h), заполняем его индексами, далее на каждом шаге

const randPos = Math.floor(Math.random() * indexes.length);
const index = indexes[randPos];
indexes[randPos] = indexes.pop();

В общем, как в "тасовании Фишера — Йетса".

А чтобы не возникло hasCompleteTiles, надо после каждого выбора проверять выбранную клетку и её соседей на "почти заполненность" (когда не хватает одной мины). Каждую почти заполненную, и всех её соседей, исключать из indexes, для чего понадобится ещё карта позиций индексов, чтобы их быстро находить.

Но это так, теоретические измышления) На практике и сейчас всё быстро отрабатывает.

Круто, но 999+ секунд -- это довольно долго

Оно не настолько интересно чтоб спидранить, 1 раз прошёл и всё.

Люблю сапёра, каждый день пару полей разминирую. Попробовал вашего минёра, сначала не очень понимал принцип, но к концу первой игры начал понимать. Спасибо, очень интересная головоломка!)

Fill-a-Pix ещё интереснее, т.к. не просто кучка мин, а картинка.

Не могли бы Вы сделать пометку клетки пустой — другим цветом? Сложно различить, клетка уже набрала достаточное количество мин или просто помечена

Sign up to leave a comment.

Articles