Хабрахабр

Пытаемся сломать игру «7 на 9»

Сегодня будет маленький этюд просто понять, интересно ли вам такое. В общем, есть такой дядька Алексей Савватеев, который читает потрясающий курс по теории игр. Он же написал книгу «Математика для гуманитариев», где очень тонко постебался над всеми гуманитариями. Просто это как раз та математика, где числа из формул стремительно пропадают. И вот в один прекрасный момент я притащил ему игру «7 на 9» и попросил её сломать.

На каждой карте число и разница. Принцип игры простой: в середину стола бросаются карты. Задача — как можно быстрее скинуть все свои карты в центр. Например, 6 плюс-минус 2 — сверху можно бросить 8 или 4. Карты по одной из своей колоды вынимаются на руку, можно брать любое количество. Очерёдности ходов нет, ничего нет, просто кто успел — тот и бросил карту. Главное, чтобы пальцев хватило. Хоть все.

Вот что получилось, видео:

Теперь расскажу словами, что это было (можно не читать, если вы смотрели видео).

Первая гипотеза

Можно сортировать карты по цветам. Цвет определяет разницу: зелёные дают плюс-минус 1, синие плюс-минус 2, красные плюс-минус 3. Дальше задача просто найти подходящий момент, бросить туда зелёную карту, побросать все остальные зелёные быстро-быстро (напомню, они отличаются на 1, то есть очень легко сортируются), а потом как пойдёт.

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

Вторая гипотеза

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

Третья гипотеза

Надо играть как получается, просто выкладывая карты по ситуации.

Игра в реакцию побеждает (это же подтвердилось ещё примерно 20 опытами) в части случаев. На видео мы попробовали все три способа в игре втроём и два способа (второй и третий) в игре вдвоём.

Игра в буфер даёт неоспоримое преимущество в следующих ситуациях:

  1. Если вы играете строго вдвоём, то вы, фактически, оба собираете этот самый буфер карт, идущих подряд из руки. Только тот, кто играет на реакцию, собирает это самым быстрым жадным алгоритмом, а вы собираете чем-то более сложным, что позволяет получить большую вероятность использования почти всех карт с руки.
  2. Когда оппонент загонит себя в ситуацию, что больше карты он класть не может (обычно это случается при 3-5 картах у него на руке), надо потратить 10 минут на составление своей победной комбинации и выложить её.

Реалистичный сценарий? Вполне. Игра, конечно, убивается к чёрту как процесс, но мы же здесь её ломать, а не получать удовольствие.

В том, что как мы видим в примере второй игры, Макс (оппонент Алексея, применяющего тактику кэширования буфера) понял, что сейчас случится, и просчитал оптимальные ситуации перехвата для себя. В чём проблема? И успел вставить карту между действиями Алексея, чем поломал ему весь буфер.

То есть почти не имеет смысла перехватывать зелёную (Δ1) карту синей (Δ2). Перехват буфера можно делать только так, чтобы сбивать буфер. При перехвате 4±1 картой 3±2 оппонент просто продолжает свои действия. Предположим в буфере 4±1, потом 5±2.

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

Одна карта ложится на стол. В коробке 73 карты с числами, распределение 1-10 неравномерное. То есть вероятность свести буфер не 100%. При игре на двоих мы получаем половину от 72 карт. Фактически, дальше игра в нашем сценарии превращается в соревнование жадного алгоритма (второй игрок собирает максимально длинную цепочку на столе) и чего-то вроде отжига или ветвей и границ (у нас в руках). Поскольку для нас идеален не просто буфер со случайной карты (точнее, двух случайных — первой и последней, ведь буфер играется в обе стороны), а циклический буфер, гарантирующий победу, то на практике шансов ещё меньше. Как чисто исследовательская задача это интересно, но практический итог — лучше не ломать кайф другим и быстро считать, играя в эту игру.

Если вдруг вы хотите эту коробку, то знайте, что Алексей пробовал поставить свои книги к нам в сеть, но не смог (потому что договор поставки с физлица — это нереальный ад), и просто подарил нам 32 штуки. Всё. Мы с удовольствием подарим их тем в магазине на Таганской (по одной в руки), кто скажет «Я от нашего общего друга Савватеева».

UPD: lexnekr советует ещё курс "Математика для всех". Курс про теорию игр вот.

Отдельно рекомендую короткое видео про дуэль трёх лиц:

Если вам интересно применение математики к играм, то мы продолжим попытками сломать что-то более сложное. И ещё это не всегда именно про математику, например, на вчерашних «поломочных» тестах мы пытались взять новую игру неожиданной договорённостью между игроками там, где договариваться, казалось бы, нельзя. Хотя это тоже часть теории игр и приложений.

Теги
Показать больше

Похожие статьи

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Кнопка «Наверх»
Закрыть