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