5. ПРАКТИКУМ ПО ПРОГРАММИРОВАНИЮ

Начнем с постановки задачи о программировании игр.

Приплывши к завершающей части наших занятий, остановимся на уточнении понятия игры как примера, избранного для обучения программированию. В житейском смысле игра может означать развлекательное времяпровождение, исполнение музыкального произведения или роли (на сцене или в кино) а также притворное или противоестественное поведение в реальной жизни. Данное в подзаголовке книги обещание соответствует первому толкованию. Мы будем заниматься такими развлечениями, в которых как поведение играющего (или играющих), так и изменение состояния объекта игры должны подчиняться некоторым ограничениям. Эти ограничения называются правилами игры. Разумеется, правила всех этих игр должны быть такими, чтобы в результате конечного количества действий (ходов) игрока приводить к какому-то результату. В одном случае это будет выигрыш или проигрыш (в некоторых играх допускается и третий результат — ничья), в другом — некоторое количество заработанных очков, а в третьем — решение занятной задачи или головоломки.

Тем, кто считает игру несерьезным'занятием, следует иметь в виду, что существует раздел математики, изучающий теорию игр. Предметом этой теории является изучение математических моделей принятия решений, ведущих к выигрышу в условиях конфликта игроков с несовпадающими интересами. Как правило эти решения должны приниматься при условиях недостатка информации о предстоящих действиях и/или ресурсах других участников игры. Эта теория используется при разработке серьезных игровых программ (разумеется, не каких-то там стрелялок и пыхтелок), в которых компьютер исполняет роль игрока. С точки зрения теории игр алгоритмы последующих развлечений не представляют никакого интереса, поскольку в них компьютерные программы не участвуют в игре как ваш партнер (за исключением одного достаточно простого примера). Тем не менее для разработки алгоритмов необходимо позаимствовать из этой теории идеи о необходимости формализации правил игры и описания объекта игры математической моделью.

Слово "модель" может означать образец, копию реального объекта, тип изделия или схему какого-либо явления, физического процесса. Нам нужна именно схема игры, как некоторого явления или физического процесса. Это понятие модели уточняется далее понятием математической модели как приближенного описания какого-либо класса явлений внешнего (по отношению к компьютеру) мира, выраженного при помощи математической символики. При этом приближенность описания следует понимать в чисто философском смысле, а не в смысле его неоднозначности или неопределенности. Дело в том, что полное, исчерпывающее описание реального объекта невозможно. Поэтому математическая модель должна описывать те свойства объекта, которые являются существенными для решения поставленной задачи.