Объект игры как правило состоит из некоторого набора реальных или воображаемых предметов. В математической модели все они должны быть некоторым образом обозначены или перенумерованы (в зависимости от их различимости с точки зрения правил игры). Математическая модель должна также учитывать состояние объекта игры (например, пространственное расположение предметов на отрезке прямой или на части плоскости), и производить его изменение при действиях игрока и/или с течением времени, учитывая при этом правила игры. Начальное состояние математической модели может быть случайным или заранее заданным в зависимости от правил игры. Для окончания игры математическая модель должна проверять выполнение соответствующих условий и выдавать информацию об окончании игры и о результате.
Такого рода математическая модель называется имитационной, что означает подражание реальному объекту. Суть разработки имитационной математической модели игры состоит в переходе от словесных описаний объекта и правил игры к чисто вычислительным задачам. Необходимость математической модели для программирования обусловлена тем, что компьютер умеет только считать по заданной извне программе и более ни на что не способен. Этот переход может быть сделан самыми разными способами, но в любом случае соответствукицая вычислительная задача должна полностью и равноценно отражать правила игры. Подробно ознакомиться с имитационным моделированием объектов игр целесообразнее на приведенных далее примерах.
Кроме моделирования алгоритмы игровых программ должны осуществлять связь с внешним миром:
• показ состояния модели объекта игры на дисплее в виде удобном для восприятия игроком,
• ввод информации об очередном ходе или действии игрока. Что касается требований к алгоритмам обеспечения связи игрока с математической моделью игры, то здесь на первый план выступают соображения удобства взаимодействия человека с компьютером. Далее в качестве примеров приведены различные варианты показа состояния объекта игры и ввода действий игрока в компьютер. Приведенные примеры игровых программ основаны на широко известных задачах, играх и головоломках. Последовательность их изложения от простого к сложному относится как к математическим моделям, так и к объему программ. Автор не смог отказать себе в удовольствии привести пару примеров неигровых программ, которые могут заинтересовать (а может быть и развлечь?) обучающихся программированию.
Поскольку после выполнения практикума по языку обучающийся приобрел (будем надеяться!) достаточные сведения об элементах программирования, в настоящем разделе объем комментариев к программам сокращен. Более того, полные тексты программ приведены отдельно в "Приложениях", которые могут использоваться для упражнений в чтении текстов на языке QBasic. В отличие от предыдущего раздела здесь больше внимания уделяется разъяснению вопросов, относящихся к математической модели игры и к программированию взаимодействия с пользователем.