В прошлый раз всем настолько понравился наш детальный разбор идеальной партии "Поселенцев", где мы методично набирали 400 очков, что я решил повторить. Шучу-шучу. Никто не смог прочесть тот пост даже по-диагонали, хотя я приложил особые усилия к формированию диагональной структуры. Но на этот раз у нас в студии гость куда меньшего масштаба, так что, надеюсь, всё получится.
Итак, "Пачворк" (Patchwork). Очаровательная игра Уве Розенберга про шитьё лоскутных одеял, с очень простыми правилами, но при этом легко масштабируемой глубиной игрового процесса. Насколько глубоко вы желаете продумывать свою стратегию каждый ход - зависит лишь от вашего настроя и аналитических способностей. Поэтому игра в принципе подходит как для расслабленного семейного отдыха, так и для баталий прожжёных гроссмейстеров.
Фотографии, увеличивающиеся по клику, как всегда, на вордпрессе.
Если кратко, смысл здесь следующий. У каждого игрока есть планшет 9х9 клеток, которое нужно заполнить фигурами разной формы. Основная валюта игры - синие пуговицы; они же выполняют функцию победных очков. Но параллельно основной в игре действует второстепенная валюта - время (на пришивание фигуры к вашему одеяльцу). Т.о. стоимость каждой фигуры выражена двумя параметрами - количеством пуговиц, которые нужно заплатить сразу и количеством часов, на которые нужно будет передвинуть свой маркер по полю времени. Обратите внимание, что на некоторых фигурах есть нашитые пуговицы - это доход. Игра длится девять (скрытых) раундов, в конце каждого происходит фаза дохода (отмечена пуговицей на шкале времени) - пересекая это поле вы получаете столько пуговиц, сколько нашито на ваших фигурах. Т.е., как и в любой пуговичной экономике, вы платите пуговицы, чтобы получать пуговицы. Ну и заполнить поле - в конце коробка у вас заберёт по две пуговицы за каждую пустую ячейку (т.е. вы начинаете с отметки в -162 очка и можете закончить партию, оставшись в минусе).
Сколько же здесь можно набрать очков? Для начала нам нужно каким-то образом оценить наши ресурсы и выявить зависимости между ними. Главным образом ресурсов три: во-первых, это сами пуговицы, во-вторых это время, в-третьих - это ячейки нашего планшета, которые нужно закрыть. С пуговицами всё просто. Все фигуры можно разделить на четыре категории, по числу нашитых пуговиц: 3, 2, 1 и 0 (обозначим их N). В партии девять фаз дохода, поэтому фигура принесёт нам к концу игры R*N пуговиц (где R - оставшееся число фаз дохода относительно того момента, когда мы пришили фигуру к нашему одеялу). Т.о. пришитая в первом раунде фигура к концу игры принесёт 9*N пуговиц, во втором - 8*N и т.д. Налицо плавная инфляция нашитых на фигуры пуговиц.
Время. Партия длится 53 игровых часа (именно столько ячеек на шкале времени). Время выполняет ту же роль, что и в нашей жизни - утекает сквозь пальцы, оставляя после себя сухой песок и аромат меланхолии. Фигур в игре предостаточно, и очевидно, что зависимость между пуговицами и временем обратная - чем меньше фигура требует времени на пошив, тем выше ценность тех пуговиц, которые она даёт (представьте себе две фигуры: обе принесут к концу игры 10 пуговиц, но пошив одной занимает четверть партии, а другой - всю партию; фактической доход первой фигуры в четыре раза выше, потому что за партию можно пришить 4 таких фигуры и получить 40 пуговиц, а вторую - только одну).
И третье - наш планшет с 81 ячейкой, которые мы заполняем фигурами. Игра сама подсказывает, как вплести их в экономику: в конце партии за каждую пустую ячейку одеяльная полиция оштрафует вас на 2 пуговицы. Т.о. можно положить 1 ячейку = 2 пуговицам.
Итого, получаем следующую формулу ценности фигуры: (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 ячейки).
Общая ценность фигур для первого раунда. Дальше она будет снижаться для фигур с нашитыми пуговицами.
Из этих фигур нам нужно отобрать столько, чтобы уместить на планшет (т.е. сумма всех ячеек меньше или равна 81). Получаются первые 14 фигур, последняя из которых - большой красный крест 1[1|4]7, в сумме они дают 78/81 ячеек и 41/53 часов.
После того как мы упорядочили фигуры по ценности, алгоритм выбора фигур по ходу партии очень простой: нужно в рамках каждого раунда на все доступные деньги покупать как можно больше пришитых пуговиц. Сложность здесь в том, что из-за эффекта инфляции (снижения доходности) во второй половине партии дорогие фигуры теряют ощутимую долю своей ценности, и это необходимо учитывать, периодически пересчитывая её (значения на фото - для первого раунда). С подобными динамическими задачами хорошо справляется программа "Эксель", а по мере улучшения таблицы она превратилась в итоге в автономный эмулятор игры - поздние тесты я прогонял на экране, не прикасаясь к картону.
Ещё один вопрос: имеет ли смысл (пользуясь лишними часами) накопить немного пуговиц вначале, чтобы купить дорогие фигуры раньше? Я попробовал и так, и так, и выяснил, что не имеет. Инфляции в равной мере подвержен весь объём пришитых пуговиц (к разным фигурам), которые нам ещё предстоит купить, так что единственное, что важно - пришивать их как можно больше как можно раньше.
В общем, мы играем за зелёного. Жёлтый начинает и каждый раз пропускает свой ход (переносит фишку вперёд нашей). Не буду вас утомлять полным логом партии; кому интересно, можете посмотреть сами (и задавать вопросы, если что). В итоге мы заканчиваем с 72 пуговицами в кармане.
72 очка
Слева видно, что жёлтый игрок при желании мог бы тоже даром время не терять, оставшихся фигур более чем достаточно (но проверять, как в таком случае изменится результат нашей идеальной партии у меня нет желания).
Кстати, решая тетрисную задачу, мне пришлось отказаться от крайне неудобной загогулины 0[1|2]6, но из-за ограничений по общей площади она шла в комплекте с неэффективной фигурой 0[2|2]3, и при замене их обеих на пару фигур 1[3|3]4 + 0[1|2]5 оказалось, что мы в итоге ничего не потеряли.
Уже при написании этого поста мне пришло в голову, что, возможно, стоило бы коэффициент ценности фигуры дополнительно поделить на количество ячеек в ней (определив т.о. среднюю ценность каждой ячейки в фигуре), чтобы избежать ситуации, когда несколько небольших фигур в сумме имели бы большую ценность, чем одна большая (а мы этого не увидим в сортировке по ценности), но на практике оказалось, что функции с одной стороны не очень сильно отличаются, а с другой - второй подход приводит к некоторым артефактам (фигура 1[3|4]5 оказывается более ценной, чем 1[1|4]7).
Дальше по ходу тестирования я обратил внимание, что наш избыток часов плавно сместился к концу партии - планшет оказывался полностью заполненным уже в предпоследнем раунде. Получается, в начале игры мы можем себе позволить взять чуть менее эффективные фигуры, которые генерируют больший доход. Я решил попробовать исключить из формулы площадь фигуры, чтобы сконцентрироваться только на скорости дохода: (R*N - S) / T (R - оставшееся число фаз дохода, N - число нашитых пуговиц, S - стоимость фигуры в пуговицах, T - время на пошив фигуры в часах).
Ценность фигур, исходя из скорости дохода, для первого раунда. В последнем раунде почти все фигуры будут иметь отрицательные значения. Те, что стоят по 10 пуговиц, мы так и не сможем себе позволить.
Итоговая стратегия, если кратко, такая: первые 5 раундов использовать все наши скромные сбережения для покупки самых доходных фигур (максимальными наборами для каждого раунда), а дальше плавно смещаться в сторону эффективности заполнения планшета. Прогнав ещё несколько тестов, мне удалось дожать финальный счёт до 77 пуговиц (вот лог партии с расчётами) - как видите, получилось не намного больше, чем в игре с чистой эффективностью, зато число круглое красивое.
77 очков
Мне кажется, ещё дальше улучшить результат идеальной партии будет крайне проблематично, но я открыт для предложений. И спасибо за внимание.
Напоследок любопытная деталь: судя по правилам, вы не вправе отказаться от бонусной заплатки. Впрочем, в обычной игре заплатка, наверное, всегда к месту.
Другой любопытный факт, который могу объяснить лишь своеобразным чувством юмора Уве: в коробке с игрой 32*1 + 12*5 + 5*10 + 20 = 162 пуговицы, ровно столько, сколько "стоит" 81 ячейка планшета игрока.
Бонусом аксессуары к игре из пуговичного магазина стоимостью $1,5 за баночку [via]
Жду анализ РЖД. Обязуюсь прочитать!:)
Обзор интересный. Сам в предвкушении этой игры. Но как-то разочаровывает, что игра НАСТОЛЬКО предсказуемая
Не переживайте. Игра ДАЛЕКО и СОВСЕМ не так предсказуема.
Такая "идеальная" партия это всё равно, что играть самому с собой в шашки в поддавки, в попытке выяснить за какое минимальное число ходов можно выиграть. Просто абстрактный интерес, который имеет отдалённое отношение к реальной игре ;).
в реальной партии фигуры перемешиваются в начале игры, а каждый ход вы можете выбрать лишь из трёх ближайших (учитывая сложившуюся ситуацию на своём поле), так что предсказуемости здесь особой нет.
на мой взгляд игра отлажена очень хорошо. был даже несколько удивлён, что при переключении с чистой эффективности на чистый доход (для первой половины партии) итоговый счёт вырос совсем немного.
Лучшая статья! Теперь интересно почитать про Поселенцев)
А не возникают ли у Вас теперь ощущение, что игра не отлажена?
Понравился обзор :) И статистика не удивительна после подробного разбора ценности фигур: 7 игр, 7 побед =)
Любопытная прикладная математика :).
Единственное что, где-то с полгода назад на БГГ уже был похожий анализ, да и Pard отмечался чем-то подобным.
По моему мнению, единственный вывод из всего этого - это то что в первой трети/половине партии надо стараться брать лоскутки с большим числом пуговиц, а дальше уже делать упор на минимально затратные по времени и наиболее подходящие по пазловости. Но это и так ясно, без матанализа :).
Во всём остальном, случайная раскладка, и соперник не позволят получать нужные лоскутки. И это замечательно! Потому что, думаю, вряд ли кто-то захочет сыграть такую "идеальную" партию с таким "идеальным" соперником :).