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