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