"Информатика", Семёнов А.Л., Рудченко Т.А.
Дерево игры — схема, в которой видны возможные позиции и ходы игроков от начала игры до её завершения. Оно помогает не гадать, какой ход удачный, а проверить все варианты ответов соперника. По дереву можно определить, кто выиграет при правильной игре, и найти стратегию — способ выбирать ходы так, чтобы победить независимо от действий другого игрока. Для этого игру рассматривают с конца к началу.
Текст подготовлен нейронной сетью по теме параграфа и не заменяет учебник — важные факты и формулировки сверяйте с ним.
Позиция игры — состояние игры в данный момент: например, сколько фишек осталось и чей сейчас ход. Это описание нужно, чтобы точно понимать, какие действия доступны игроку и откуда продолжать анализ. Если записать только число фишек, но забыть, чей ход, можно перепутать разные ситуации.
Ход — действие игрока, которое по правилам переводит игру из одной позиции в другую. Например, если можно взять одну фишку, ход уменьшает число фишек на одну. Понятие хода помогает не включать в анализ действия, которых правила не разрешают.
Дерево игры — схема всех возможных ходов и позиций, начиная с выбранной начальной позиции. Каждый переход на схеме показывает, что может произойти после конкретного действия. Дерево нужно, чтобы увидеть не одну партию, а все варианты развития игры.
Выигрышная стратегия — способ выбирать ходы, который позволяет игроку добиться победы при любых ответных ходах соперника. Это не просто один удачный ход: стратегия должна подсказывать, как действовать дальше в разных ситуациях. Она помогает проверить, действительно ли победа зависит от твоих решений, а не от ошибки соперника.
Сначала по правилам выясняют, какие действия разрешены в каждой позиции. Это нужно делать отдельно для разных ситуаций: при разном числе фишек или очереди игроков набор возможных ходов может отличаться. После каждого разрешённого действия записывают новую позицию и проверяют, можно ли из неё продолжить игру.
Дерево начинают строить от начальной позиции: её помещают в корень, то есть в верхний или крайний узел схемы. Затем от корня проводят ветви ко всем позициям, которые могут возникнуть после одного хода. Каждый новый узел становится началом следующих ветвей, поэтому постепенно появляются все варианты партии, а не только выбранная последовательность.
Позиции располагают по уровням, потому что игроки ходят по очереди. На первом уровне после начала игры оказываются результаты первого хода, на следующем — возможные ответы второго игрока. Такое расположение показывает, чья очередь наступает после каждого действия, и помогает не приписывать одному игроку несколько ходов подряд.
Если из позиции уже нельзя сделать разрешённый ход, её отмечают как конечную: в дереве это лист. Исход такой позиции определяют по точной формулировке правил, потому что окончание игры не всегда означает победу последнего ходившего. Например, если проигрывает тот, кому нечего взять, игрок, сделавший последний ход, мог как раз привести соперника к поражению.
Чтобы найти стратегию, дерево рассматривают от конечных позиций к началу. Для каждой позиции спрашивают: есть ли ход, после которого соперник окажется в проигрышной ситуации? Если есть, позиция выигрышная для того, кому сейчас ходить; если все ходы ведут к выигрышу соперника, она проигрышная. Так учитывают не один предполагаемый ответ, а все разрешённые ответы другого игрока.
| Элемент схемы | Что он обозначает | Как его читать |
|---|---|---|
| Корень дерева | Начальная позиция | Отсюда начинается рассмотрение игры |
| Узел | Позиция игры | В узле записывают состояние игры и, при необходимости, чей ход |
| Ветвь | Разрешённый ход | По ветви переходят к позиции, возникшей после хода |
| Лист | Позиция, из которой игра не продолжается | По правилам определяют, кто выиграл |
Читай схему от корня: выбери ветвь и перейди к узлу, который показывает результат хода. Из нового узла снова рассмотрите все ветви, ведь ходить будет другой игрок. Дойдя до листа, определи исход по правилам, а затем используй его для анализа предыдущих позиций.
Задача 1. На столе лежат 3 фишки. За ход можно взять 1 фишку. Проигрывает тот, кому нечего брать. Нарисуй дерево игры и определи победителя при правильной игре.
Ответ: при правильной игре выигрывает первый игрок. В этой задаче каждый может сделать только один ход, поэтому дерево представляет одну последовательность ходов до конечной позиции.
Задача 2. На столе лежат 4 фишки. За ход можно взять 1 или 2 фишки. Тот, кто берёт последнюю фишку, выигрывает. Построй дерево и найди выигрышный первый ход.
Ответ: нужно взять 1 фишку. Тогда после любого ответа соперника первый игрок сможет забрать оставшиеся фишки последним ходом.
Задача 3. На столе лежат 7 фишек. За ход можно взять 1 или 2 фишки, а взявший последнюю выигрывает. Составь дерево до позиций, из которых можно определить исход, и опиши стратегию первого игрока.
Ответ: первый игрок выигрывает, если первым берёт 1 фишку, а затем отвечает так, чтобы за два хода соперников вместе было взято 3 фишки. Так после каждого его ответа сопернику остаётся число фишек, кратное 3.
Одна ветвь дерева не показывает всю игру: она показывает только один возможный путь. Так ошибаются, когда записывают лишь выбранные ходы и забывают, что соперник может выбрать другой вариант. Проверь себя: из каждого узла проведены ветви для всех разрешённых ходов.
Не объединяй позиции только потому, что они похожи. Нужно проверить число фишек, очередь игроков и правила дальнейших ходов: если хоть что-то различается, продолжение может быть другим. Для проверки запиши в каждом узле не только количество фишек, но и того, кому ходить.
Нельзя всегда считать, что последний сделавший ход победил. В одних играх он забирает последнюю фишку и выигрывает, а в других проигрывает тот, кому больше нечего взять. Перед отметкой листа ещё раз сверься с условием и определи исход именно по нему.
Ход не становится выигрышным лишь потому, что после него положение кажется удачным. Если соперник может ответить так, что победит, этот ход не гарантирует успеха. Проверь все ветви ответа соперника и убедись, что для каждой из них у тебя остаётся способ продолжить игру к победе.
Для построения дерева нужно уметь читать правила игры, перечислять разрешённые действия и описывать состояние игры. Эти умения помогают точно определить, какие позиции записывать и какие ветви проводить. Если в позиции неясно, чья очередь или что разрешено делать, дерево получится неполным.
Дерево игры используют при поиске выигрышной стратегии и анализе задач, где игроки ходят по очереди. Оно превращает рассуждение о возможных ответах в понятную схему. Такие задачи учат планировать не только свой следующий ход, но и дальнейшие действия с учётом решений соперника.
Зачем изображать игру в виде дерева?
Дерево показывает все разрешённые варианты ходов, а не только одну выбранную партию. По нему удобно проверять, к чему приведёт каждый ход и как может ответить соперник.
Что именно записывают в узлах дерева игры?
В узле записывают позицию: например, сколько фишек осталось и чей ход. Это позволяет отличать ситуации, из которых доступны разные действия.
Нужно ли показывать в дереве все возможные ходы?
Да, нужно включить каждый ход, разрешённый правилами из данной позиции. Иначе можно не заметить ответ соперника, который меняет исход игры.
Как понять по дереву, кто выиграет?
Сначала отмечают конечные позиции и определяют победителя по правилам. Затем рассматривают предыдущие позиции: если игрок может перейти в позицию проигрыша соперника, такая позиция для него выигрышная.
Чем выигрышный ход отличается от выигрышной стратегии?
Выигрышный ход — конкретный переход из одной позиции, который помогает добиться победы. Выигрышная стратегия — правило выбора ходов на протяжении игры, учитывающее все возможные ответы соперника.
Дерево игры