Patchwork: идеальная партия

В прошлый раз всем настолько понравился наш детальный разбор идеальной партии “Поселенцев”, где мы методично набирали 400 очков, что я решил повторить. Шучу-шучу. Никто не смог прочесть тот пост даже по-диагонали, хотя я приложил особые усилия к формированию диагональной структуры. Но на этот раз у нас в студии гость куда меньшего масштаба, так что, надеюсь, всё получится.

Итак, “Пачворк” (Patchwork). Очаровательная игра Уве Розенберга про шитьё лоскутных одеял, с очень простыми правилами, но при этом легко масштабируемой глубиной игрового процесса. Насколько глубоко вы желаете продумывать свою стратегию каждый ход – зависит лишь от вашего настроя и аналитических способностей. Поэтому игра в принципе подходит как для расслабленного семейного отдыха, так и для баталий прожжёных гроссмейстеров.

Patchwork01-1920-P1140358

Если кратко, смысл здесь следующий. У каждого игрока есть планшет 9х9 клеток, которое нужно заполнить фигурами разной формы. Основная валюта игры – синие пуговицы; они же выполняют функцию победных очков. Но параллельно основной в игре действует второстепенная валюта – время (на пришивание фигуры к вашему одеяльцу). Т.о. стоимость каждой фигуры выражена двумя параметрами – количеством пуговиц, которые нужно заплатить сразу и количеством часов, на которые нужно будет передвинуть свой маркер по полю времени. Обратите внимание, что на некоторых фигурах есть нашитые пуговицы – это доход. Игра длится девять (скрытых) раундов, в конце каждого происходит фаза дохода (отмечена пуговицей на шкале времени) – пересекая это поле вы получаете столько пуговиц, сколько нашито на ваших фигурах. Т.е., как и в любой пуговичной экономике, вы платите пуговицы, чтобы получать пуговицы. Ну и заполнить поле – в конце коробка у вас заберёт по две пуговицы за каждую пустую ячейку (т.е. вы начинаете с отметки в -162 очка и можете закончить партию, оставшись в минусе).

Patchwork02-1920-P1140364

Сколько же здесь можно набрать очков? Для начала нам нужно каким-то образом оценить наши ресурсы и выявить зависимости между ними. Главным образом ресурсов три: во-первых, это сами пуговицы, во-вторых это время, в-третьих – это ячейки нашего планшета, которые нужно закрыть. С пуговицами всё просто. Все фигуры можно разделить на четыре категории, по числу нашитых пуговиц: 3, 2, 1 и 0 (обозначим их N). В партии девять фаз дохода, поэтому фигура принесёт нам к концу игры R*N пуговиц (где R – оставшееся число фаз дохода относительно того момента, когда мы пришили фигуру к нашему одеялу). Т.о. пришитая в первом раунде фигура к концу игры принесёт 9*N пуговиц, во втором – 8*N и т.д. Налицо плавная инфляция нашитых на фигуры пуговиц.

Patchwork03-1920-P1140409

Время. Партия длится 53 игровых часа (именно столько ячеек на шкале времени). Время выполняет ту же роль, что и в нашей жизни – утекает сквозь пальцы, оставляя после себя сухой песок и аромат меланхолии. Фигур в игре предостаточно, и очевидно, что зависимость между пуговицами и временем обратная – чем меньше фигура требует времени на пошив, тем выше ценность тех пуговиц, которые она даёт (представьте себе две фигуры: обе принесут к концу игры 10 пуговиц, но пошив одной занимает четверть партии, а другой – всю партию; фактической доход первой фигуры в четыре раза выше, потому что за партию можно пришить 4 таких фигуры и получить 40 пуговиц, а вторую – только одну).

И третье – наш планшет с 81 ячейкой, которые мы заполняем фигурами. Игра сама подсказывает, как вплести их в экономику: в конце партии за каждую пустую ячейку одеяльная полиция оштрафует вас на 2 пуговицы. Т.о. можно положить 1 ячейку = 2 пуговицам.

Patchwork04-1920-P1140534

Итого, получаем следующую формулу ценности фигуры: (2*M + R*N – S) / T, где M – число ячеек в фигуре, R – оставшееся число фаз дохода, N – число нашитых пуговиц, S – стоимость фигуры в пуговицах, T – время на пошив фигуры в часах. Ценность фигуры выражается в пуговицах/час, т.е. это как бы скорость увеличения нашего стёганого благосостояния.

Избавлю дорогих читателей от вычислений ценности каждой из 33 фигур, отмечу только, что они совершенно не одинаковые: самые ценные лучше обычных в несколько раз. Стоит отметить, впрочем, что мы проигнорировали форму фигуры, т.е. тетрисную составляющую игры. Повышенный бюджет многих фигур явно компенсирует их неудобную форму. В общем, вот я на фотографии ниже разложил фигуры в порядке убывания ценности слева направо (над полем). Стоит отметить первые три с показателями 12, 11½ и 10. Это абсолютные рекордсмены, дальше цифры снижаются сразу до 7, 6, 5, 4… и вплоть до 1,66 у уголка 0[1|3]3 (0 дохода | 1 пуговица | 3 часа | 3 ячейки).

Patchwork06-figures-1920-P1140542

Общая ценность фигур для первого раунда. Дальше она будет снижаться для фигур с нашитыми пуговицами.

Из этих фигур нам нужно отобрать столько, чтобы уместить на планшет (т.е. сумма всех ячеек меньше или равна 81). Получаются первые 14 фигур, последняя из которых – большой красный крест 1[1|4]7, в сумме они дают 78/81 ячеек и 41/53 часов.

После того как мы упорядочили фигуры по ценности, алгоритм выбора фигур по ходу партии очень простой: нужно в рамках каждого раунда на все доступные деньги покупать как можно больше пришитых пуговиц. Сложность здесь в том, что из-за эффекта инфляции (снижения доходности) во второй половине партии дорогие фигуры теряют ощутимую долю своей ценности, и это необходимо учитывать, периодически пересчитывая её (значения на фото – для первого раунда). С подобными динамическими задачами хорошо справляется программа “Эксель”, а по мере улучшения таблицы она превратилась в итоге в автономный эмулятор игры – поздние тесты я прогонял на экране, не прикасаясь к картону.

Patchwork05-1920-P1140536

Ещё один вопрос: имеет ли смысл (пользуясь лишними часами) накопить немного пуговиц вначале, чтобы купить дорогие фигуры раньше? Я попробовал и так, и так, и выяснил, что не имеет. Инфляции в равной мере подвержен весь объём пришитых пуговиц (к разным фигурам), которые нам ещё предстоит купить, так что единственное, что важно – пришивать их как можно больше как можно раньше.

В общем, мы играем за зелёного. Жёлтый начинает и каждый раз пропускает свой ход (переносит фишку вперёд нашей). Не буду вас утомлять полным логом партии; кому интересно, можете посмотреть сами (и задавать вопросы, если что). В итоге мы заканчиваем с 72 пуговицами в кармане.

Patchwork07-endgame1-1920-P1140554

72 очка

Слева видно, что жёлтый игрок при желании мог бы тоже даром время не терять, оставшихся фигур более чем достаточно (но проверять, как в таком случае изменится результат нашей идеальной партии у меня нет желания).

Кстати, решая тетрисную задачу, мне пришлось отказаться от крайне неудобной загогулины 0[1|2]6, но из-за ограничений по общей площади она шла в комплекте с неэффективной фигурой 0[2|2]3, и при замене их обеих на пару фигур 1[3|3]4 + 0[1|2]5 оказалось, что мы в итоге ничего не потеряли.

Patchwork08-Sonya-1920-P1140564

Уже при написании этого поста мне пришло в голову, что, возможно, стоило бы коэффициент ценности фигуры дополнительно поделить на количество ячеек в ней (определив т.о. среднюю ценность каждой ячейки в фигуре), чтобы избежать ситуации, когда несколько небольших фигур в сумме имели бы большую ценность, чем одна большая (а мы этого не увидим в сортировке по ценности), но на практике оказалось, что функции с одной стороны не очень сильно отличаются, а с другой – второй подход приводит к некоторым артефактам (фигура 1[3|4]5 оказывается более ценной, чем 1[1|4]7).

Дальше по ходу тестирования я обратил внимание, что наш избыток часов плавно сместился к концу партии – планшет оказывался полностью заполненным уже в предпоследнем раунде. Получается, в начале игры мы можем себе позволить взять чуть менее эффективные фигуры, которые генерируют больший доход. Я решил попробовать исключить из формулы площадь фигуры, чтобы сконцентрироваться только на скорости дохода: (R*N – S) / T (R – оставшееся число фаз дохода, N – число нашитых пуговиц, S – стоимость фигуры в пуговицах, T – время на пошив фигуры в часах).

Patchwork11-figures3-1920-P1140574

Ценность фигур, исходя из скорости дохода, для первого раунда. В последнем раунде почти все фигуры будут иметь отрицательные значения. Те, что стоят по 10 пуговиц, мы так и не сможем себе позволить.

Итоговая стратегия, если кратко, такая: первые 5 раундов использовать все наши скромные сбережения для покупки самых доходных фигур (максимальными наборами для каждого раунда), а дальше плавно смещаться в сторону эффективности заполнения планшета. Прогнав ещё несколько тестов, мне удалось дожать финальный счёт до 77 пуговиц (вот лог партии с расчётами) – как видите, получилось не намного больше, чем в игре с чистой эффективностью, зато число круглое красивое.

Patchwork10-endgame2-1920-P1140569

77 очков

Мне кажется, ещё дальше улучшить результат идеальной партии будет крайне проблематично, но я открыт для предложений. И спасибо за внимание.

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

Другой любопытный факт, который могу объяснить лишь своеобразным чувством юмора Уве: в коробке с игрой 32*1 + 12*5 + 5*10 + 20 = 162 пуговицы, ровно столько, сколько “стоит” 81 ячейка планшета игрока.

P.S. В заголовке поста аксессуары к игре из пуговичного магазина стоимостью $1,5 за баночку [via].

P.P.S. Чуть не забыл ещё один бонус: P is for Patchwork (там у чувака целый арт-проект).

p

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s