Обновить

Комментарии 12

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

В статье этот момент был опущен сознательно по одной причине: сохранение низкого порога входа для начинающих.

Целью руководства было научить основам:

  • Работе с классами (ООП).

  • Базовой логике 2D-массивов.

  • Основам Pygame (игровой цикл, отрисовка, обработка событий).

  • Реализации простого рекурсивного алгоритма.

Добавление алгоритма проверки поля на логическую решаемость — это задача на порядок сложнее, которая увела бы нас от этих основных целей.

Фу нейронка

а это было бы интересно разобрать - как узнать что область не замкнута и в неё есть доступ? Когда это лучше делать, при постановке новой мины проверять не замкнёт ли она область, или пытаться сперва расставить а потом проверить и, допустим, перенести одну из них, чтобы разомкнуть контур. А ведь это коснётся и задачи и на поиск пути - такие алгоритмы используются во множестве игр.
Понимаю, что статья для начинающих - но чуть-чуть материала на развитие тоже будет интересно

Что это за ситуация? И почему это вообще является проблемой?

Если мины образуют кольцо вокруг ячейки без мины, скажем слева (мина это X, а 5 ячейка без неё) то разгадывая поле справа туда никак не попадёшь:
XX
5X
XX

Верхний правый Х и нижний правый Х легко помогают определить, где нет мины

221
XX2
5X3
XX2
221

А если будет полный круг, то можно методом исключения

Я имею ввиду, что начиная, например, справа сверху как мы узнаем, есть в центре мина или нет? Мы не можем вычислить это никак - нет просвета и информация из чисел вокруг не помогает тут

Это не страшно. Оставляем на будущее (под вопрос) и дальше идём. В конце будет понятно

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

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

https://play.google.com/store/apps/details?id=com.embarcadero.MineSweeperFMX

Написано на Delphi

Чат гпт убедил меня, что это действительно бэд дизайн играх. Но мы же говорим об оригинальной игре в винде? Так подобных ситуаций валом.

При чем гпт забавно объяснял. Спрашиваю, про угадывание ли речь? Нет, говорит, ты "не можешь пройти" через мины)

А всё решается просто, вместо случайной расстановки мин делать связную область без мин и генерацию начинать с первого клика игрока(иначе он может подорваться с первого же хода) - именно так сделан сапёр в винде

А вот как - тут и стоит подумать, в том и интерес)

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации