Слишком уж настойчиво мне эту игру продавали в комментариях в телеграмм-канале. Да и нельзя сказать, что концепция zach-like сапера — что-то, мимо чего я прошла бы. Мне, конечно же, было очень интересно. В итоге, однако, Bombe я бы назвала не zach-like сапером, а сравнила бы ее с написанием научной диссертации по решению подобных головоломок в условиях ограниченного декларативного инструментария. Очень сложно, в общем, сейчас расскажу вам что это такое и кого Bombe может заинтересовать.
Пишем докторскую по теории чисел
Большинство игр Zachtronics работают на основе того, что в компьютерных науках мы могли бы назвать императивным подходом. У вас есть конвеер, по нему мы как-нибудь двигаемся и можем применять действия в разных точках этого конвеера. В данном случае конвеер — просто концепция, а не какая-то обязательная игровая сущность. В разных играх он может выглядеть по-разному. Декларативный же подход Bombe отличается тем, что вы задаете правила преобразования одного состояния в другое, а как оно будет выполняться — уже не вашего ума дело.
Попробую изложить принцип работы игры по полочкам, но скорее всего текстом это сделать не выйдет. Игровая логика работает на основе регионов. Каждая ячейка с цифрой M порождает вокруг себя регион размером N и числом M. Получается, что в M/N ячейках находятся мины. Если M эквивалентно N, то должно быть понятно, что каждая ячейка — мина. На основе этого можно создать правило.
Но что делать дальше? Что делать, если M и N не равны и никакие очевидные способы не помогают дать однозначный ответ? Bombe принципиально не дает вам добавлять логически противоречивые правила, поэтому вы просто не сможете создать такое правило, которое будет помечать мины неправильно. Поэтому нужно искать способы построения корректных правил. И в данном случае нам на помощь подойдет логика пересечений между двумя регионами. Теперь у нас есть регионы размером N1, N2 числом мин M1, M2, пересекающиеся на области из K ячеек. Предположим, что M1 строго меньше M2. Это означает, что на пересечении K может стоять не больше M1 мин. Это также означает, что весь избыток мин находится в области N2-K. Таким образом мы можем создать свои собственные регионы и тоже использовать их для последующих дедукций. Все правила на каждый регион применяются циклически, добавление нового региона приводит к рекурсивному вызову на нем всех старых правил, поэтому их нужно стараться делать максимально универсальными. Чтобы их было мало, а время вычисления оставалось невысоким.
Понятно, что инструментарий игры довольно серьезно ограничен, особенно в начале игры. Но постепенно он расширяется до такой степени, что даже создание одного правила будет даваться вам со все большим и большим трудом. В этом и есть суть “игрового” процесса Bombe. Вы смотрите на ситуацию на экране и пытаетесь преобразовать свою логику выхода из нее в декларативный язык игры. Это не сапер как таковой, вы пишете движок для решения всех возможных головоломок, а не отгадываете их сами.
Ничего не понятно, но очень интересно!
Bombe — интересная разминка для межушной мышцы. Поставив себя в ситуацию, в которой ваши стандартные механизмы решения головоломок просто перестают работать, вы начинаете пытаться осмыслить инструментарий и выработать принципы составления правил. Работать это будет скорее всего так же, как первая игра во что-то вроде Factorio — вы сотвортие нечто такое, на что вам самим будет стыдно смотреть. Что-то переусложненное, с избыточной информацией и специфичными для контекста свойствами, требующими постоянного копирования. Но со временем ваши правила будут становиться все изящнее, а вызовы, которые игра вам будет бросать — все сложнее. Придется учиться работать с множеством разных регионов и искать новые способы обобщения ситуаций.
Открытий будет масса, в этом можно не сомневаться. На каждом новом шаге ваши старые способы решения проблем перестают масштабироваться и игра требует от вас каких-то новых когнитивных успехов. При этом все свои гипотезы вы сможете проверить тут же, не дожидаясь пока кто-то проведет рецензирование вашей домашней работы. И игра приносит массу удовольствия, когда вы находите то самое недостающее правило, которое позволяет увеличить свой счет решенных головоломок еще на сотню-другую. И в этом весь ее смысл. Надобрать.
Обсуждение в telegram