- •Содержание
- •Введение
- •Общий раздел
- •Цель разработки
- •1.2. Характеристики используемых при работе аппаратно-программных средств
- •1.3. Обоснование выбора среды программирования
- •2. Специальный раздел
- •2.1. Постановка задачи
- •2.2. Анализ входной и выходной информации
- •Технологический раздел
- •Описание алгоритма
- •Описание схемы данных
- •Описание схемы взаимодействия программы
- •3.2.Описание программы
- •3.3. Процесс отладки программы
- •3.4. Анализ результатов решения задачи
- •3.5. Инструкция пользователя
2.2. Анализ входной и выходной информации
В данной программе входной информацией будет являться:
- информация о расстановке кораблей на игровом поле игрока и его компьютерного соперника
- выбранная сложность противника
- настройки для программы, хранящиеся в файле conf.ini
- действия пользователя, т.е. содержание хода игрока, а также действия его компьютерного соперника
Выходные данные:
- результат игры (проиграл или выиграл игрок)
- список всех ходов игры, выводящийся в мемо-поле;
- информация о результате текущего хода – задет корабль, потоплен он или промах.
- количество подбитых кораблей у обоих сторон
- в конце игры, в случае поражения игрока, выводится информация о расстановке кораблей противника.
- предусмотрена возможность полного сохранения результатов игры в HTML-формате.
Технологический раздел
Описание алгоритма
Описание схемы алгоритма программы:
- открытие главного окна программы;
- настройка установок программы;
- установка сложности компьютерного соперника (слабый, средний, сильный);
- расстановка кораблей на игровом поле или загрузка схемы из файла;
- первый ход;
- процесс игры;
- сохранение результата в HTML;
- выход из приложения.
Описание схемы данных
Данные, которые использовались для создания дипломного проекта: журналы, каталоги, internet. Данные, используемые программой хранятся в отдельных файлах:
- папка Shemes – хранит файлы схем игры
- папка Sounds – в ней хранятся звуки, которые программа использует во время своей работы
- файл config.ini – в нем содержатся основные установки, используемые программой
- файл fonts.txt – содержит шрифты программы
файл lt.ini – содержит координаты главного окна программы
Описание схемы взаимодействия программы
При запуске программы появляется главная форма с расположенными на ней графическими элементами управления. Это:
- два игровых поля для расположения на них кораблей
- поле, в котором отражается статистика игры
- мемо-поле, в котором отражается все ходы, сделанные в игре
- главное меню программы
- список для выбора сложности бота
- управляющие кнопки
На главной форме пользователь может играть.
На форме «Сохранение схемы» пользователь может сохранить схему расстановки кораблей.
На форме «Загрузка/Удаление схемы» пользователь может загрузить или удалить схему.
На форме «Настройки» пользователь может задать все необходимые настройки для игры.
На форме «О программе» можно узнать о разработчике программы.
3.2.Описание программы
Программный продукт Магазин «Морской бой» написан в среде визуального объектно-ориентированного программирования Delphi 6.
Данная программа состоит из:
MainUnit – главный модуль программы, отвечает за процесс игры;
ConfUnit – модуль, отвечающий за установку и сохранение настроек, заданных пользователем;
LoadDelShemeUnit – модуль, отвечающий за загрузку и удаление схем игры;
SaveShemeUnit – модуль, который отвечает за сохранение схемы игры;
HTMLUnit – модуль, который за сохранение результатов игры в формате HTML;
CleanerUnit – модуль, отвечающий за очистку ненужных данных в файлах схем;
AboutUnit – модуль окна «О программе»
Головная программа начинается с ключевого слова Program, после которого пишется имя программы. Оно совпадает с именем файла, в котором сохраняется проект. Это же имя присваивается исполняемому файлу приложения. По умолчанию это имя Project1. После заголовка в тексте программы располагается оператор uses. Этим оператором перечисляются модули, загружаемые программой. Первый модуль Forms – системный, а следующие – модули разработанных программ. Следующая строка текста – {$R *.RES} представляет собой директиву компилятора. Затем, после ключевого слова begin и до последнего завершающего программу end с точкой (end.), записано тело программы.
Рассмотрим теперь, как выглядят тексты модулей.
Модуль начинается с ключевого слова Unit, после которого пишется имя модуля. Оно совпадает с имеем файла, в котором сохраняется модуль. По умолчанию для первого модуля имя равно Unit1, для второго Unit2 и т.д.
Текст модуля состоит из двух основных разделов: interface – открытый интерфейс модуля и implementation – реализация модуля. Все, что помещается непосредственно в раздел interface (типы, переменные, константы, функции, процедуры), может быть использовано другими модулями программы. Все, что помещается в раздел implementation – внутреннее тело модуля. Внешние модули не могут видеть типы, переменные, константы, функции и процедуры, размещенные в разделе реализации.
В разделе interface после оператора uses, содержащего список подключаемых элементов, можно видеть заготовку объявления класса вашей формы, подготовленную в Delphi. Имя класса формы – TForm1. Класс содержит два раздела: private – закрытый раздел класса, и public – открытый раздел класса. То, что объявлено в разделе public, будет доступно для других классов и модулей. То, что объявлено в разделе private, доступно только в пределах данного модуля.
В таблице, расположенной ниже описаны те компоненты, которые использовались при создании программы.
Таблица 1
1 |
2 |
3 |
Shape |
(фигура) |
Размещает на форме объект, представляющий собой правильную геометрическую программу |
Label |
(метка) |
Размещает в форме объекты, предназначенные для создания текстовой информации, надписей и примечаний. |
Edit |
(текстовое поле) |
Размещает в форме текстовое поле, предназначенное для ввода текстовой информации, чисел и дат. |
Button |
(кнопка управления) |
Размещает в форме кнопки управления для инициации действий, выполнения команд, запуска программ. |
MainMenu |
(главное меню) |
Размещает на форме главное меню. |
ComboBox |
(поле со списком) |
Создает в форме объект, содержащий одновременно поле ввода и раскрывающийся список |