State Stacker · Пища для размышлений
Каждый блок выше фундамента должен опираться на географического соседа, и это превращает простую игру в складывание блоков в проверку того, как устроена структура смежности карты.
Написано и отредактировано на английском языке. Эта русская версия создана машинным переводом; там, где важна точность, авторитетным остаётся английский оригинал. Читать оригинал на английском →
Движок игры сплавляет две разные области: эрудицию и географическую смежность. Игрок зарабатывает штат в виде блока, ответив на вопрос о нём, а затем кладёт этот блок на вершину растущей башни. Вся соль — в правиле устойчивости: положенный блок устойчив лишь тогда, когда штат прямо под ним, нынешняя вершина башни, имеет с ним общую сухопутную границу. Исключение только одно — первый блок, фундамент: он стоит твёрдо всегда. Это требование смежности превращает башню в физическое воплощение связности карты, где каждая укладка обязана считаться с реальными отношениями соседства, записанными в наборе данных. 2
Основанием этого замысла служит собственный набор данных игры о штатах, в котором собраны все пятьдесят записей коллекции штатов США. В каждой записи хранятся название, двухбуквенное почтовое сокращение, столица, регион по классификации Бюро переписи, список соседей и короткий факт. Особенно важен список соседей: в него входят только соседи по сухопутной границе, записанные почтовыми сокращениями. Штаты, обращённые друг к другу через одно из Великих озёр, — например, Michigan (Мичиган) и Illinois (Иллинойс), — соседями поэтому не считаются, а у Alaska (Аляска) и Hawaii (Гавайи) сухопутных соседей нет вовсе. Это точное определение смежности и становится правилом, по которому судят каждую укладку. 2
Когда игрок кладёт блок, движок сверяет его с блоком на вершине башни. Два штата считаются смежными, только если каждый из них указывает другой как соседа по суше. Поскольку проверка требует обеих записей, отношение симметрично по построению: штат A держит штат B ровно тогда, когда штат B держал бы штат A. Эта симметрия обеспечивает согласованность по всей башне: любое устойчивое соединение должно удовлетворять одному и тому же двустороннему условию, независимо от того, какой из двух штатов появился первым. 2
Прежде чем заработать блок, игрок должен ответить на вопрос о штате, выбрав один из четырёх вариантов. Движок порождает вопросы четырёх разных типов, и каждый опирается на свою часть записи о штате. Тип «столица» спрашивает столицу штата. Тип «регион» спрашивает, к какому из четырёх регионов Бюро переписи — Northeast, Midwest, South или West (Северо-Восток, Средний Запад, Юг или Запад) — относится штат. Тип «факт» спрашивает, какой из четырёх коротких фактов верен для этого штата; остальные три позаимствованы у других штатов. Тип «сосед» спрашивает, какой из четырёх штатов с ним граничит: один настоящий сосед и три штата, которые с ним не граничат. Вместе четыре типа задействуют четыре поля записи из шести — столицу, регион, факт и соседей, — тогда как название и сокращение подписывают вопрос и блок. 2
Каждый тип вопроса служит в игровом цикле своей цели. Вопросы о столице и регионе проверяют знание неизменных признаков. Столица штата — один-единственный город, а регион по переписи — одна из четырёх возможностей, поэтому в каждом вопросе о регионе предлагаются одни и те же четыре варианта. Вопрос о факте проверяет память на короткое описательное утверждение. Вопрос о соседе проверяет знание самого списка смежности — той самой структуры, которая позже и определит устойчивость. О каждом штате в раунде спрашивают только один раз, а типы чередуются в постоянном порядке — столица, регион, факт, сосед, снова столица, — так что раунд из двадцати четырёх вопросов равномерно перемешивает все четыре. 2
Верный ответ приносит штат в виде блока; неверный не приносит ничего, и игра переходит к следующему вопросу. Получив блок, игрок принимает ровно одно решение: положить его или выбросить. Выбирать место не приходится — каждый блок ложится наверх, — но игра заранее сообщает, будет ли блок стоять твёрдо: она называет штат, который сейчас на вершине, и указывает, граничит ли с ним заработанный штат. Такое разделение добычи и укладки создаёт стратегический слой: блок, который зашатается, можно выбросить, а не класть, и именно так и следует поступить, потому что его укладка обрушит всю башню. 2
Правило устойчивости — тот элемент замысла, который отличает эту игру в складывание блоков от прочих. В обычной игре такого рода устойчивость — вопрос физики: надёжно ли опирается подошва блока на тот, что снизу. Здесь физики нет вовсе. Устойчивость решается целиком географией: блок стоит твёрдо, только если, согласно набору данных игры, он настоящий сосед блока под ним. Это превращает башню из физической конструкции в топологическую, где связи означают реальную смежность на карте. 2
Проверка смежности воплощает это ограничение. Она берёт два штата и смотрит, указывает ли каждый из них другой среди своих соседей. Условие это строже, чем просто наличие общей границы в некотором отвлечённом смысле: отношение должно быть явно записано в наборе данных. Например, два штата, обращённые друг к другу через Великие озёра, смежными не считаются, потому что в наборе данных записаны только сухопутные границы. Alaska и Hawaii, у которых сухопутных соседей нет совсем, никогда не смогли бы образовать устойчивое соединение, поэтому игра никогда о них не спрашивает; впрочем, их названия и факты всё ещё могут попадаться среди неверных вариантов ответа. Эти решения отражают сознательный выбор: опереть смежность на конкретное определение, а не на одну лишь географическую интуицию. 2
Симметрия отношения существенна для согласованности. Если штат A может держать штат B, то и штат B точно так же мог бы держать штат A. Соединение либо допустимо, либо нет — по неизменным спискам соседей, независимо от того, какой из двух штатов появился первым. Это свойство упрощает рассуждения игрока: каков бы ни был штат на вершине, на нём может лежать любой его сосед, и весь вопрос лишь в том, оказался ли только что заработанный блок одним из них. 2
Условие победы задаётся двумя связанными числами: целевой высотой и надёжной высотой. Целевую высоту движок принимает как параметр, и игра всегда передаёт значение по умолчанию — восемь; это число устойчивых блоков, которые должна держать башня, считая и фундамент, так что восемь означает фундамент плюс семь блоков, положенных на соседей. Надёжная высота считает устойчивые блоки от фундамента вверх, и, поскольку единственная неустойчивая укладка тут же завершает раунд, всякий блок в устоявшей башне устойчив: надёжная высота — это попросту высота башни. Каждая устойчивая укладка поднимает её на единицу. Когда укладка неустойчива, блок шатается и башня рушится. 2
Это различие между надёжными и ненадёжными блоками создаёт настоящий риск. Поскольку ничто сложенное выше шатающегося блока всё равно не зачлось бы в надёжную высоту, игра не заставляет игрока продолжать: единственная неустойчивая укладка сразу завершает раунд поражением под заголовком “Tower Toppled!” («Башня рухнула!»), называя штат, который не граничил с блоком под ним. Уже набранные очки сохраняются. Именно поэтому игра даёт кнопку сброса и перед каждой укладкой предупреждает, зашатается ли блок; предупреждение прямо говорит, что шатающийся блок обрушит башню и завершит раунд. Напряжение рождается из того, что заработать блок — ещё не значит продвинуться: к цели игрока ведут только устойчивые укладки на непрерывной башне. 2
В раунде двадцать четыре вопроса, так что дойти до цели в восемь блоков — значит превратить в твёрдо стоящие блоки ровно треть из них. Неверный ответ башне не вредит, но стоит возможности, а поскольку вопросы сцеплены от соседа к соседу, пропущенный штат может оставить следующий без границы со штатом на вершине. Каждый верный ответ стоит 10 очков, каждая устойчивая укладка — ещё 15, а достижение цели добавляет бонус в 100 очков и немедленно завершает раунд. Если раньше кончатся вопросы, башня «доросла до верха» (“topped out”), не дотянув до черты; если же раньше лёг шатающийся блок, она рухнула. 2
Каждый набор вопросов порождается генератором псевдослучайных чисел с зерном. При одном и том же зерне движок выдаёт ту же последовательность вопросов, в том же порядке, с теми же вариантами ответов на тех же местах. Этот детерминизм служит сразу нескольким целям. Он делает возможным общий опыт: режим Daily («Ежедневный») берёт зерно из даты, поэтому все, кто играет в этот день, получают одни и те же вопросы и могут сравнить результаты, тогда как режим Practice («Тренировка») берёт для каждой партии новое случайное зерно. Он же делает игру проверяемой, ведь любую партию можно в точности воспроизвести по её зерну. Наконец, он делает поведение игры предсказуемым для анализа, поскольку вся последовательность вопросов — функция от зерна. 2
Зерно решает, какие штаты появятся и в каком порядке, но порядок этот не произволен. Движок строит его цепочкой: он начинает со случайного штата, и каждый следующий штат в вопросе — по возможности ещё не использованный сосед предыдущего; и только в тупике движок перескакивает к какому-нибудь другому неиспользованному штату. Именно это сцепление даёт игроку честный шанс на связную башню: ответьте верно на череду вопросов — и заработанные штаты, как правило, будут граничить друг с другом. Игрок не может выбирать, какой штат придёт следующим, поэтому стратегия сводится к тому, чтобы отвечать хорошо и решать, блок за блоком, класть или выбрасывать. Зерно задаёт ритм партии, но насколько точно этот ритм выдержан, определяет игрок. 2
Правило устойчивости опирается на теорию графов — науку о графах как математических структурах, которыми моделируют попарные отношения между объектами. 1 В этих понятиях штаты — вершины, а общие сухопутные границы — рёбра. Два штата смежны тогда и только тогда, когда их соединяет ребро. Список соседей каждого штата — это множество смежных с ним вершин, а проверка смежности спрашивает, существует ли ребро между двумя данными вершинами. Башня, если она устойчива целиком, представляет собой путь в этом графе: последовательность рёбер, соединяющих последовательность попарно различных вершин, — различных здесь потому, что ни об одном штате в раунде не спрашивают дважды. 3
Этот взгляд с позиций теории графов проясняет, почему на одних штатах строить труднее, чем на других. У Alaska и Hawaii в графе нет рёбер вовсе — потому игра никогда о них и не спрашивает. Среди сорока восьми смежных штатов число рёбер сильно разнится: Maine (Мэн) граничит только с New Hampshire (Нью-Гэмпшир), тогда как Missouri (Миссури) и Tennessee (Теннесси) граничат каждый с восемью штатами. Хорошо связанный штат на вершине башни даёт место для приземления многим заработанным штатам; плохо связанный, вроде Maine, не оставляет почти ни одного. Связность графа и определяет трудность задачи складывания. 2
Путь в графе — это последовательность рёбер, соединяющих последовательность вершин. 3 Башня, построенная устойчиво, — физическое воплощение такого пути. Каждый устойчивый блок удлиняет путь на одну вершину, соединённую ребром с предыдущей. Целевая высота в восемь означает, что игрок должен найти путь через восемь вершин, длиной в семь рёбер. Трудность в том, что путь приходится строить постепенно, и каждую новую вершину нужно сначала заработать в викторине, прежде чем добавить её к башне. 2
Устройство движка сводит викторину, смежность и складывание блоков в единый связный цикл. Вопросы викторины черпаются из собственного набора данных игры о штатах и проверяют знание столиц, регионов, фактов и соседей. Проверка смежности зеркалит теорию графов, считая штаты вершинами, а сухопутные границы — рёбрами. Механика складывания даёт физическую метафору построения пути в графе. Каждый элемент подкрепляет остальные: викторина приносит блоки, смежность определяет устойчивость, а складывание ведёт к цели. 2
Этот синтез создаёт своеобразный игровой опыт. Игроку приходится думать одновременно о знаниях и о географии. Верный ответ приносит блок, но блок этот хуже чем бесполезен, если он не граничит со штатом на вершине башни: его укладка завершит раунд. Наверху может стоять хорошо связанный штат — и всё же ни один из его соседей может не оказаться заработанным. Взаимодействие этих ограничений и создаёт стратегическую глубину: каждый добытый блок игрок должен взвесить относительно штата, который сейчас на вершине. 2
В итоге игра одновременно проста и сложна. Правила легко высказать: отвечай на вопросы, зарабатывай блоки, складывай их на соседей, доберись до цели. Но исполнение требует постоянной оценки штата на вершине, его соседей и только что заработанного блока. Ограничение по смежности превращает то, что могло бы быть пустяковой задачей на складывание, в проверку структуры карты, где каждая укладка обязана считаться с реальной географией, записанной в наборе данных. 2