Вычислительное мышление: Метод решения сложных задач | страница 83
Например, игра может пойти так:
игрок 1 берет БУСЫ,
игрок 2 берет ХЛЕБ,
игрок 1 берет БАНЯ,
игрок 2 берет ГАТЬ,
игрок 1 берет ПЛУГ,
игрок 2 берет ОРЕХ,
игрок 1 берет УРОН...
…и выигрывает, собрав БУСЫ, ПЛУГ и УРОН. Это три слова, в которых есть буква У.
Сыграйте несколько партий, чтобы понять принцип. А потом читайте дальше — и найдете хитрый способ выигрывать… а может, догадаетесь сами? Мы вернемся к этому чуть позже.
ПОДСКАЗКА. Подумайте, как расположить слова в квадрате, чтобы было легче заметить выигрышный набор слов. Вы уже знаете очень похожую игру!
Мы знаем, что компьютеры творят чудеса, и одно из таких чудес — умение выигрывать у людей в игры. Компьютер может победить чемпиона мира по шахматам, но как? А может ли обычный листок бумаги действовать столь разумно, что будет играть так же хорошо, как человек? Да. Если правила будут верными. И сейчас у вас есть шанс сыграть против такого листка и посмотреть, что получится.
Крестики-нолики — популярная игра на основе сетки, позволяющая быстро развлечься и посоревноваться. Давайте сыграем — и заодно рассмотрим базовые принципы, благодаря которым компьютеры могут участвовать в играх. В игре «Крестики-нолики» участники по очереди делают ход на поле 33. Один ставит нолики, другой — крестики. Сделать ход — значит написать X или 0 в пустой клетке на доске. Первый, кто поставит три символа в одну линию по горизонтали, вертикали или диагонали, выигрывает. Если никому не удастся это сделать, получается ничья.
Игра со страницей, на которой напечатан рис. 60, будет нелегкой! Когда настанет ее очередь ходить, делайте, что сказано в инструкциях к рисунку. Потом делайте любой ход. Страница начинает первой и играет крестиками.
Ну что, выиграла страница? Или получилась ничья? Или вам все же удалось обыграть этот листок бумаги?
В лучшем случае (если вы не мухлевали) будет ничья. Удалось ли странице сыграть достойную партию? Она немного разбирается в крестиках-ноликах и действует осмысленно. Как и в игре «Жизнь», для выигрыша здесь тоже требуются тщательно продуманные и проверенные инструкции — знакомый нам теперь алгоритм. Обычно такие инструкции хранятся в памяти компьютера, чтобы он им следовал.
Но компьютеры делают только то, что придумал программист. Если что-то пойдет не так, его действия окажутся не слишком разумны. Мы написали правила, приведенные выше, в расчете на то, что страница будет ходить первой… а если она начнет второй? Попробуете? Так ли умно она играет? Мастерство программиста заключается в том, чтобы написать правила для любой вероятности. Хотите написать хорошие инструкции для игрока 2? Позаимствуйте знания у нашего листка бумаги, и вы будете непобедимы.