«Старт в Сапере» или «Базовые паттерны»
Этот пост написан пользователем Sports.ru, начать писать может каждый болельщик (сделать это можно здесь).
Введение в игру.
Я думаю, большинство людей, кто имел дело с персональным компьютером на Windows XP (или 2000), сталкивались с игрой «Сапер». Да-да, речь идет о сером окошке с желтым смайлом в верхней части.
Не буду лукавить, но в моем детстве эта игра для меня была загадкой. Я не понимал, как мой отец мог выигрывать в этой игре и точно угадывать, какие клетки стоит открывать, а какие точно нужно пометить флажком. Поэтому игра не вызывала у меня явного интереса в отличие от какого-нибудь Serious Sam'a. Но повзрослев я был укушен своим отцом и проникся любовью к этой игре.
Суть игры довольно проста. Игроку необходимо разгадать, какие конкретно поля заминированы. Игра проходит на прямоугольном поле(мы берем за основу стандартную версию с полем из квадратиков, до многоугольников и мнгоуровневых карт я еще сам не дошел). Количество заминированных клеток на игровом поле игроку известно заранее. При открытии ячейки, если наткнуться на мину игра завершается. Соотвественно, чтобы достичь победы, необходимо открыть все клетки, кроме заминированных.
Но как нам прийти к это победе? Что за цифры появляются на месте открытых не заминированных клеток? Я здесь для того, чтобы ответить на эти вопросы.
Цифры - это ключ. Цифры - это информация. Цифры - это путь к победе.
Так вот, каждая цифра в открытой клетке на минном поле отображает для нас информацию о том, какое количество заминированных клеток находится в радиусе этой цифры.
Сейчас попробую объяснить подробнее. Любая клетка, которая находится не с краю и не в углу, окружена другими восьмью клетками. Соответсвенно вокруг клетки максимум может быть 8 заминированных клеток, либо минимальное значание заминированных клеток может равняться 0. И именно цифра показывает, количество заминированных клеток. Цифра 1 означает, что одна клетка заминирована, а семь являются пустыми. И так в плоть до 8. Цифра 0 на минном поле не пишется, а просто является пустой клеткой без информации. Все просто!
Паттерны
И так, я вам рассказал вводную часть, теперь пора переходить к основной теме. Не могу же я написать просто пост о правилах в игру «Сапер». Нет. Здесь я хочу разобрать основные паттерны этой игры.
Для начала определим, что такое паттерн в игре «Сапер». Паттерн — это часто встречающаяся ситуация, имеющая единственное верное решение. Паттерны делятся на легкие и сложные. Я рассмотрю только базовые, без углубления в теорию вероятностей. Паттерн служит неким ключем к решению в той или иной ситуации, которая возникает на игровом поле. Для новичка паттерны помогут быстрее разобраться в игре, а для более продвинутого игрока они послужат инструментом для улучшения своего собственного рекорда.
Первый паттерн. Количество закрытых клеток в радиусе цифры = цифре. Если цифра окружена равным количеством закрытых клеток, то все эти клетки заминированы.
Это база. То есть, если мы имеем цифру 3 и в радиусе этой цифры только три закрытые клетки, а остальные пять клеток уже открыты, то все закрытые клетки в радиусе этой цифры я вляются заминированными.
Второй паттерн. Количество флагов в радиусе цифры = цифре. В случае, если в радиусе цифры уже проставлено равное цифре количество флагов, то можно без опасений открывать остальные закрытые клетки.
Если обратить внимание на картинку выше, то мы видим, что под флагом находится цифра 1(обведена красным кружком). Количество флагов равно цифре 1, значит мы можем открыть все клетки вокруг не боясь нарваться на мину. Что мы и делаем.
Первые два паттерна являются самыми базовыми, они свободно выводятся из правил игры «Сапер». В описании следующих паттернов я уже не смогу сформулировать их с помощью единого оформленного правила. Поэтому я буду объяснять на пальцах используя картинки.
Третий паттерн. Это паттерн описывает действия игрока в случае, нахождения двух цифр 1 с краю подряд. К примеру как на картинке.
Если мы возьмем самую правую цифру 1, то увидим, что в ее радиусе закрыто всего две клетки и мы точно знаем, что в одной из двух клеток находится мина. Теперь посмотрим на цифру 1, которая стоит левее от крайней(я ее выделил красным кругом). Эту цифру 1 окружает уже три закрытые клетки.
А так как мы знаем, что мина находится точно в двух крайних закрытых клетках(выделил желтыми кругами), то мы можем свободно открыть все остальные закрытые клетки.
Данный паттерн не дает нам знать, где точно находится мина. Скорее паттерн позволяет найти иные пути решения и помогает выйти из тупика. Я разобрал данный пример, когда цифра 1 находится с краю, но данный патерн работает и в центре игрового поля.
Четвертый паттерн. Теперь разберем похожий пример на предыдущий, но с одним маленьким изменением. Теперь с краю не будут находиться две цифры 1 подряд. Теперь с краю находится цифра 1, а следом за ней идет цифра 2. В нашем случае цифра 1 сверху, цифра 2 ниже прямо за единицей.
Мы все так же видим, что в радиусе цифры 1, только две закрытые клетки и в одной из них мина. Теперь переходим к клетке где указана цифра 2. Согласно этой клетке в ее радиусе находится две заминированных клетки. А так, как мы знаем, что те клетки которые находятся в радиусе цифры 1(выделил желтым кругом), имеют в себе всего одну мину, то...
То следующую клетку можно спокойно открыть закрыть флажком. Потому, что точно знаем, что она является заминированной. Этот паттерн в отличие от предыдущего помог нам найти мину, а не просто пустую клетку и мы стали на шаг ближе к победе.
Пятый паттерн. В пятом паттерне я решил рассмотреть разновидность предыдущего паттерна, то есть четвертого. По факту он работает точно, так же, но не с краю игрового поля, а условно где-то посередине.
У нас все так же есть цифра 1, за которой следует цифра 2. Но в данном случае цифра 1 имеет в своем радиусе целых три закрытых клетки, вместо двух из предыдущего примера. Вот незадача, как же тогда применить полученные знания в данном примере? Очень просто мы будем смотреть на смежные закрытые клетки у цифры 1 и следующе за ней цифрой 2(выделил их желтыми кругами).
Что мы точно можем сказать об этих двух закрытых клетках? Первое, что они могут быть заминированы, но эта информация нам не нужна, так как любая закрытая клетка, может быть заминирована. Тогда мы точно знаем, что в этих двух закрытых клетках, не может быть больше одной мины. Именно от этой информации и будем отталкиваться. Если эти две закрытые клетки, не могут быть минами одновременно, то в третьей закрытой клетке, которая находится в радиусе цифры 2, точно находится мина. Можем спокойно ее помечать флажком.
Заключение
Конечно, я рассмотрел не все существующие паттерны. Но этих пяти хватит, чтобы войти в игру «Сапер» или закрепить/освежить в памяти уже имеющиеся знания. Как я говорил ранее: новичкам паттерны помогут разобраться в игре, а более продвинутым игрокам, автоматизировать свой игровой процесс.
Возможно, в будущем я напишу о других паттернах и раскрою их более подробно. Спасибо!