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