← Хекс против компьютера

Стратегия хекса: мосты, шаблоны у края и как обыграть компьютер

Числа на этой странице — результаты моделирования, в котором работает код самой игры: её оценка, её перебор и её три уровня. «Обычный» выбирает случайно из трёх лучших ходов, поэтому его цифры опираются на 5000 партий на каждое правило. В «Сложном» случайности нет; выигрышные линии против него проверены ход за ходом на движке с настоящими часами. «Эксперт» думает на время (на нашем тестовом компьютере он доходил до пяти-шести ходов вперёд), поэтому его моделировали на фиксированной глубине четыре (500 партий на правило), а выигрышную линию проверили на глубинах пять и шесть и с настоящими часами. Теория — отсутствие ничьих, выигрыш первого игрока, решение доски 7×7 — взята из опубликованной математики и так и помечена.
Коротко

В хексе выигрывают, соединяя, а не мешая, и главный инструмент — мост: два ваших камня с двумя пустыми клетками между ними не разрезать, потому что на ход компьютера в одну клетку вы отвечаете другой. «Сложный» смотрит всего на два хода вперёд и каждый раз отвечает одинаково, поэтому его обыгрывают семь ходов — меньше не бывает: g1, f2, e3, d4, c5, b6, b7. Против «Эксперта» на его обычной глубине каждый раз выигрывала линия d4, f2, f3, f4, e6, f1, f5, e7, а игрок, который взвешивает оба пути — свой и компьютера, — выигрывает у «Обычного» 95% партий.

Доска и названия клеток

Доска — ромб 7×7 из шестиугольников. Вы играете красными и соединяете верхний край с нижним; компьютер играет синими и соединяет левый край с правым. Первый ход всегда ваш, а правила обмена нет: компьютер не может забрать ваш первый камень себе.

В самой игре клетки не подписаны, поэтому здесь они названы как на шахматной доске: столбцы a–g слева направо вдоль вашего верхнего края, ряды 1–7 сверху вниз. Каждый ряд сдвинут на полклетки вправо относительно верхнего, так что доска наклонена вправо. Центр — d4; ваши края — ряды 1 и 7, края компьютера — столбцы a и g.

У каждой внутренней клетки шесть соседей. У d4 это c4 и e4 в её ряду, d3 и e3 над ней, c5 и d5 под ней. Запомнить просто: сверху — та же буква и следующая, снизу — предыдущая и та же. Поэтому прямая линия сверху вниз идёт не по одному столбцу, а каждый ряд смещается на букву влево: g1, f2, e3, d4, c5, b6, a7.

У острых углов, a1 и g7, всего по два соседа, у тупых, g1 и a7, — по три. Угловые клетки принадлежат краям обоих игроков.

Почему не бывает ничьих и почему вы в выигрыше

За каждой партией стоят две теоремы; их историю рассказывает статья под доской, а здесь только то, что они значат для вас.

  • Ничьих нет. Когда доска заполнена, соединён ровно один игрок: красная цепочка сверху вниз и синяя слева направо не могут существовать одновременно, а перекрыть одну — значит построить другую. Поэтому каждый камень, которым вы мешаете компьютеру, заодно лежит на каком-то вашем пути. (Теория: теорема о хексе, доказательство Дэвида Гейла, 1979.)
  • Первый игрок выигрывает. Будь у второго игрока выигрышная стратегия, первый мог бы сходить куда угодно и дальше играть по ней: лишний камень в хексе никогда не мешает. Это противоречие — «кража стратегии» Нэша — доказывает, что первый всегда может выиграть, но не говорит как. (Теория.)
  • Доска 7×7 решена. В 2003 году группа из Университета Альберты с помощью компьютера установила, какие первые ходы на доске такого размера выигрывают; центр — один из них. Раз правила обмена нет, каждая партия здесь начинается для вас с выигранной позиции. (Теория: опубликованный результат, здесь не пересчитанный — доска из 49 клеток далеко за пределами полного перебора.)

На практике теорема ничего не обещает: из выигранной позиции случайный игрок победил «Обычного» один раз из 5000 партий, а «Сложного» — ни разу из 2000. Побеждает техника, и вся остальная страница — о ней.

Мост и шаблоны у края

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

Мост от d4 кДве общие клеткиНаправление
c6c5 и d5на два ряда вниз, на букву назад
e2d3 и e3на два ряда вверх, на букву вперёд
e5e4 и d5на ряд вниз, на букву вперёд
c3c4 и d3на ряд вверх, на букву назад

Первые два переносят вас через доску, последние два сдвигают вбок, не теряя связи.

У краёв работает тот же приём — шаблон у края. Камень в ряду 6 касается двух клеток ряда 7 — c6 касается b7 и c7, — поэтому, если обе пусты, он уже соединён с нижним краем: какую бы клетку ни занял компьютер, вы займёте другую. Так же камень в ряду 2 соединён с верхним краем (c2 касается c1 и d1). Игроки знают и шаблоны крупнее, например «зиккурат» для камня в третьем ряду от края, но им нужно больше пустого места и больше внимания (теория).

К этому прилагается привычка отвечать на вторжение: если компьютер сходил в ваш мост или шаблон, закройте его сразу. Мы дали простому игроку — он только сокращает свой путь — одно это дополнительное правило. Против «Обычного» его победы выросли с 63% до 67% (по 5000 партий), против «Сложного» — с 8,8% до 15% (по 2000 партий). Все выигрышные линии на этой странице кончаются одинаково: компьютер занимает одну клетку шаблона, вы — другую.

Мосты компьютер знает: его оценка считает мост между двумя его камнями почти готовым соединением. Шаблонов у края он не знает и камень во втором от края ряду считает всё ещё не дотянутым до края на одну клетку.

Блокируйте на расстоянии, а не вплотную

Классический совет: камень, поставленный прямо перед камнем соперника, мешает мало — обойти его всегда можно с двух сторон. Блок работает, когда стоит на несколько рядов впереди и может встретить путь, куда бы тот ни свернул (теория и долгий опыт игроков).

«Сложный» показывает почему. В выигрыше за семь ходов ниже каждый его камень встаёт вплотную к вашему последнему, а вы просто шагаете с другой стороны: g1, f2, e3, d4, c5, b6 идут прямо по короткой диагонали, а «Сложный» отвечает g2, f3, e4, d5, c6 и потом a7 — слишком поздно.

На этом движке измерено, что важно считать оба пути. Простые игроки, по 5000 партий против «Обычного»:

Как выбирается ходПобеды над «Обычным»
Случайная пустая клетка0,02% (1 партия)
Сократить свой путь к дальнему краю, не глядя на путь компьютера63%
То же, и отвечать на вторжения в мосты и шаблоны у края67%
Сократить свой путь и удлинить путь компьютера: клетка с лучшей разностью95%
То же, на два хода вперёд99,1%

«Путь» здесь — то, что измеряет сам компьютер: сколько пустых клеток не хватает самой дешёвой цепочке между двумя краями игрока. Скачок с 63% до 95% — это и есть цена защиты: ход, который сокращает ваш путь на клетку и удлиняет путь компьютера на клетку, стоит двух.

Первый ход

По теории на доске 7×7 центр выигрывает. Против здешних движков первый ход значит гораздо меньше, чем то, что за ним следует: мы фиксировали каждый из 49 первых ходов, и пять детерминированных игроков доигрывали партию против «Сложного» и «Эксперта» (по одной партии — случайности там нет), а игрок, взвешивающий оба пути на ход вперёд, сыграл по 100 партий от каждого первого хода против «Обычного».

Первый ходПротив «Обычного» (100 партий)Выиграно фиксированных проверок (из 5)
g1 (тупой угол)96%4
e2, f2, g2 (рядом с ним)99–100%по 3
d4 (центр)97%1
a1, g7 (острые углы)70% и 90%0 и 2
b431%0
Все 49 ходов в среднем87%1,3

Бросаются в глаза две вещи. Лучше всего показали себя клетки у тупого угла g1, а центр, теоретический победитель, против этих движков выиграл только одну проверку из пяти. Слабые первые ходы — в основном клетки у краёв и несколько клеток слева, вроде b4, a5 и a6: против «Обычного» первые ходы у края дали в среднем 84%, внутренние — 89%.

Фиксированные проверки: игроки на один и на два хода вперёд против «Сложного», на один и на три хода вперёд против «Эксперта» на глубине четыре и на четыре хода вперёд против «Эксперта» на глубине пять. Это одиночные партии, так что столбец — подсказка, а не рейтинг.

Как играет каждый уровень и как его обыграть

Все три уровня сначала занимают выигрывающую клетку, если она есть, затем закрывают вашу, если вы грозите выиграть следующим ходом. Дальше:

  • «Обычный» оценивает каждую клетку на ход вперёд — свой путь против вашего — и играет случайно одну из трёх лучших.
  • «Сложный» смотрит на два хода вперёд: свой ход и ваш лучший ответ. Ни случайности, ни часов: на одну и ту же позицию всегда один и тот же ответ.
  • «Эксперт» повторяет тот же перебор всё глубже около 1,2 секунды и играет лучший ход последней досчитанной глубины. На нашем тестовом компьютере это пять ходов вперёд, иногда шесть, к концу партии до восьми; на медленном телефоне меньше. На заданной глубине он играет одинаково, но сама глубина зависит от устройства.

«Сложный» за семь ходов. Быстрее выиграть нельзя: вашей цепочке нужен камень в каждом из семи рядов. Играйте g1, f2, e3, d4, c5, b6, b7. «Сложный» отвечает g2, f3, e4, d5, c6, a7, и b7 замыкает цепочку: под b6 были свободны и b7, и a7, а компьютер успел занять только одну.

Вторая линия в семь ходов начинается с центра: d4, e3, f2, d5, f1, c6, c7. «Сложный» отвечает d2, b3, a5, g3, d6, b7. Ваша цепочка — f1–f2–e3–d4–d5–c6–c7. Обе линии выигрывают и у движка, считающего на три хода вперёд: на первую он отвечает так же, на вторую — иначе, но проигрывает обе.

«Эксперт» за восемь ходов. Играйте d4, f2, f3, f4, e6, f1, f5, e7. «Эксперт» отвечает e2, e3, e4, c6, a7, e5, d7, и вы выигрываете. Ваш столбец f1–f4 соединён с e6 мостом (e5 и f5), e6 с нижним краем — шаблоном (d7 и e7), и «Эксперт» вторгается в оба слишком поздно. На глубине шесть он отвечает на четвёртый ход d6 вместо c6 и на пятый b7 вместо a7, а линия всё равно выигрывает; с настоящими часами она выиграла все три раза, что мы её проверяли.

Линия против «Эксперта» зависит от того, насколько глубоко он успевает считать, поэтому на медленном устройстве она может не сработать: на глубинах от двух до четырёх и на семи компьютер отвечает иначе, и линия упирается в занятую клетку. Для медленного устройства есть другая линия: e2, c4, c3, b6, c5, c2, c1, b7 выигрывает у движка на глубинах два, три и четыре (на четырёх ответы такие: e3, d3, g2, b5, d2, b1, a7), а линии в семь ходов против глубины четыре с первым ходом e2, g1 или d4 нет вовсе. Линии против «Сложного» от устройства не зависят. «Обычный» случаен: центральная линия против «Сложного» обыграла его лишь в 20% из 2000 партий, так что против «Обычного» играйте по принципам, а не по списку.

Ваше правилоПротив «Обычного»Против «Сложного»Против «Эксперта»*
Случайная пустая клетка0,02%0%0%
Сокращать свой путь63%8,8%0,6%
… и отвечать на вторжения в мосты и шаблоны67%15%1,2%
Лучшая разность двух путей на ход вперёд95%12 из 49 первых ходов3 из 49 первых ходов
То же на два-три хода вперёд99,1%21 из 49 (на два)15 из 49 (на три)

* «Эксперт» на фиксированной глубине четыре — слабее, чем он играет на быстром компьютере; по 500 партий на правило в первых трёх строках. В двух последних правилах случайности нет, поэтому против «Сложного» и «Эксперта» они сыграли по одной партии от каждого первого хода. «Обычный» — по 5000 партий на правило.

Правила по порядку

  1. Думайте мостами: на два ряда вниз и на букву назад (от d4 к c6) — два ряда одним камнем, и разрезать нельзя.
  2. Если компьютер сходил в ваш мост или шаблон у края, закройте его сразу.
  3. Камень в ряду 2 или 6 с двумя пустыми клетками за ним уже соединён с этим краем.
  4. Взвешивайте оба пути: лучший ход обычно сокращает ваш и удлиняет путь компьютера.
  5. Блокируйте на расстоянии: камень вплотную к чужому просто обходят.
  6. Против «Сложного» играйте готовую линию: g1, f2, e3, d4, c5, b6, b7.

Одно только взвешивание обоих путей поднимает простого игрока против «Обычного» с 63% до 95%; готовые линии выигрывают у «Сложного» каждый раз.

Вопросы и ответы

Может ли партия в хекс закончиться вничью?

Нет. Когда доска заполнена, соединяющая цепочка есть ровно у одного игрока: перекрыть соперника везде — значит соединиться самому. Это теорема (Гейл, 1979), и поэтому партия здесь всегда кончается победой одной из сторон.

Всегда ли выигрывает первый игрок в хексе?

При идеальной игре — да: «кража стратегии» Нэша доказывает, что у первого игрока есть выигрышная стратегия на доске любого размера, но не говорит, какая. Поэтому в серьёзных партиях применяют правило обмена. Здесь его нет и вы ходите первыми, так что по теории вы всегда можете выиграть.

Какой первый ход в хексе лучший?

На доске 7×7 центр, d4, — доказанно выигрывающий ход. Против здешнего компьютера первый ход значит меньше, чем дальнейшая игра: игрок, взвешивающий оба пути, выигрывал у «Обычного» в среднем 87% партий по всем 49 первым ходам, а лучше всего показали себя клетки у тупого угла g1.

Что такое мост в хексе?

Два ваших несоседних камня с двумя общими пустыми соседями, например d4 и c6 с общими c5 и d5. Одним ходом его не разрезать: соперник занимает одну общую клетку — вы занимаете другую. Это основной способ быстро и надёжно пересечь доску.

Как обыграть компьютер в хекс?

«Сложного» здесь обыгрывает линия g1, f2, e3, d4, c5, b6, b7 — каждый раз, за семь ходов, быстрее невозможно. Против «Эксперта» на его обычной глубине каждый раз выигрывала линия d4, f2, f3, f4, e6, f1, f5, e7. Против «Обычного», который играет случайно, взвешивайте оба пути и отвечайте на вторжения в мосты — это около 95% побед.

Что такое правило обмена в хексе?

После первого хода второй игрок может забрать этот камень себе вместо ответа. Оно не даёт первому начинать с центра: первый ход приходится выбирать ни слишком сильным, ни слишком слабым. В игре здесь этого правила нет.

Решён ли хекс?

Маленькие доски решены. Все первые ходы на 7×7 компьютер разобрал в 2003 году, 8×8 и 9×9 — в следующее десятилетие. На турнирных досках 11×11 и 13×13 известно, что первый игрок выигрывает, но неизвестно как.

Сыграть в хекс с компьютером →
Куда отсюда
Как сослаться: «Стратегия хекса: мосты, шаблоны у края и как обыграть компьютер», You vs Computer, https://youvscomputer.com/games/ru/hex-strategy.html