2.1 Руководство программиста.....................................................................10
2.2 Руководство пользователя......................................................................14
Заключение…………………………………………………………………18
Литература …………………………………………………………………19
ПРИЛОЖЕНИЕ А Текст модуля Main……………………………………20
Введение
Главная цель данной работы, разработать приложение «Сетевой игры «Морской бой» в среде разработки Borland Delphi. Игра может применяться для развлечения. Для ее использования не требуется специальных знаний в области компьютерных технологий, достаточно лишь наличие начальных умений в использовании компьютера и знания правил игры «Морской бой», благодаря чему программой могут пользоваться представители различных возрастных категорий.
В представленной работе рассмотрена одна из популярных сетевых игр.
В данной пояснительной записки была рассмотрены такие разделы как программная документация, состоящая из руководства пользователя и программиста, представлен текст основного модуля Main. Данные пункты необходимые для разработки программы и дальнейшего её усовершенствования.
Раздел «Руководство пользователя» содержит краткие сведения по управлению игровым процессом. В разделе «Руководство программиста» кратко описаны основные подпрограммы главного модуля Main и все переменные, используемые в программе, краткое описание программы и внешнего вида приложения.
1. Техническое задание
1.1 Наименование, область применения
Полное наименование приложения: «Сетевая игра «Морской бой».
1.2 Основание для разработки
В соответствии с учебным планом необходимо выполнить курсовую работу по дисциплине «Сетевые технологии».
1.3 Назначение разработки
Функциональным назначением является разработка приложения сетевой игры, а эксплуатационное - демонстрационный материал для учебных курсов по сетевым технологиям и сетевому программированию.
1.4 Технические требования к программе, программному изделию
1.4.1 Требование к функциональным характеристикам
Программа должна выполнять следующие функции:
работать как на одном компьютере, так и на различных;
осуществлять подсчёт очков;
выдавать подсказки для игры;
Меню программы содержит следующие пункты:
файл:
- новая игра;
- выход;
настройки;
- настройки клиента;
- настройки сервера;
- создать игру;
- подключиться к игре.
Входными данными являются: нажатие клавиши, расстановка кораблей, позиция выстрела, результат выстрела, порт и адрес компьютера.
Выходными данными являются: результат выстрела, позиция выстрела, счёт игры.
1.4.2 Требования к надёжности
Приложение поддерживает диалоговый режим и выдаёт сообщения при выигрыше или проигрыше игрока.
1.4.3 Условие эксплуатации
Данное приложение может использоваться для проведения свободного времени, т.е. развлечения, и рассматриваться как демонстрационный материал для учебных курсов по сетевым технологиям и сетевому программированию. Условие эксплуатации приложения совпадают с условиями эксплуатации ПЭВМ IBM PC.
1.4.4 Требования к параметрам и составу технических средств
Персональный компьютер, на котором может быть установлена система Borland Delphi 7, должен удовлетворять определенным требованиям.
Базовый комплект технических средств включает:
системный блок:
- процессор Pentium III с частотой 300 МГц или выше;
- оперативная память - 64 Мбайт (рекомендуется 128 Мбайт или больше);
- объем дискового пространства - 300 Мбайт (минимум);
- видеокарта - минимальное разрешение 800x600 при 256 цветах (рекомендуется разрешение 1024x768);
- сетевая карта - для сетевой версии AutoCAD 2000;
цветной монитор - диагональ 17" - 19", частота не менее 85 Гц;
алфавитно-цифровую клавиатуру (АЦК);
манипулятор типа «мышь» (рекомендуется Microsoft IntelliMouse).
Для получения твердой копии пояснительной записки необходим принтер.
1.4.5 Требования к информационной и программной совместимости
Для написания программы должен использоваться язык программирования Object Pascal среды разработки Borland Delphi.
Системные программные средства, используемые программой, должны быть представлены лицензионной локализованной версией одной из операционных систем Microsoft Windows 98/NT/2000/XP/Vista.
1.4.6 Требования к маркировке и упаковке, требованию и хранению
Приложения поставляются в электронном виде на переносном носителе.
1.4.7 Специальные требования
Специальные требования не предъявляются.
1.5 Технико-экономические показатели
Приложение разрабатывается для собственных нужд и соответственно не даст экономического эффекта.
1.6 Стадии и этапы разработки
1.6.1 Техническое задание
Данная стадия разработки содержит в себе следующие этапы работ:
a) обоснование необходимости разработки приложения, в этот этап входят следующие работы:
- постановка задачи;
- сбор исходных материалов;
- выбор и обоснование критериев эффективности и качества разрабатываемого приложения;
- обоснование необходимости проведения научно-исследовательских работ.
b) научно-исследовательские работы, в данный этап входят работы:
- предварительный выбор методов решения задач;
- обоснование целесообразности применения ранее разработанных программ;
- определение требований к техническим средствам;
- обоснование принципиальной возможности решения поставленной задачи.
c) разработка и утверждение технического задания, в этом этапе присутствуют следующие работы:
- определение требований к изделию;
- разработка технико-экономического обоснования разработки приложения;
- определение стадий, этапов и сроков разработки пояснительной записки;
- выбор среды разработки;
- определение необходимости проведения научно-исследовательских работ на последующих стадиях;
- согласование и утверждение технического задания.
1.6.2 Эскизный проект
Эта стадия разработки содержит в себе следующие этапы работ:
a) разработка эскизного проекта, в данный этап входят следующие работы:
- уточнение методов решения задачи;
- разработка общего описания алгоритма решения задачи;
- разработка технико-экономического обоснования.
b) утверждение эскизного проекта, в этом этапе необходимы следующие работы:
- разработка пояснительной записки;
- согласование и утверждение эскизного проекта.
1.6.3 Технический проект
В этой стадии разработки присутствуют следующие этапы работ:
a) разработка технического проекта, в этот этап входят следующие работы:
- определение формы представления выходных данных;
- разработка структуры изделия;
- окончательное определение конфигурации технических средств.
b) утверждение технического проекта, в этом этапе имеются следующие работы:
- разработка плана мероприятий по разработке и внедрению приложения;
- разработка пояснительной записки;
- согласование и утверждение технического проекта.
1.6.4 Рабочий проект
На этом этапе необходимы следующие этапы работ:
a) разработка приложения, на этом этапе содержатся следующие работы:
- работы по созданию приложения;
- тестирование и отладка программы.
b) разработка программных документов
- разработка пояснительной записки.
1.7 Порядок контроля приёмки
Поставляется на переносном носителе в срок до 10.04.08, вместе с пояснительной запиской.
2. Программная документация
2.1 Руководство программиста
Для создания сетевой игры «Морской бой» была использована интегрированная среда разработки Borland Delphi 2007. Приложение реализовано на основе одного не блокирующегося сокета UDP. В программе клиент является и сервером, т.е. он сам обрабатывает события.
Внешний вид программы после ее запуска представлен на рисунке 1.
Рисунок 1 – Внешний вид программы «Сетевая игра «Морской бой»
Для удобства управления работой программы было создано главное меню, содержащее два пункта: «Файл» и «Настройки».
Пункт меню «Файл» содержит два подпункта:
a) новая игра;
b) выход.
Пункт меню «Настройки» содержит четыре подпункта:
настройки клиента;
настройки сервера;
создать игру;
подключиться к игре.
В программе предусмотрено, чтобы подпункты меню «Настройки»: «Создать игру» и «Подключиться к игре» были активными только после того, как игрок создаст поле игры и расставит все корабли. Но после того как Игроки подключаться к игре они снова становятся не активными.
Для настройки клиента необходим адрес и порт, а для сервера – порт. Окна настроек появляются посередине игрового окна.
Поле игрока и соперника создаются с помощью объектов типа Shape, размером 25 на 25.
В программе имеются подсказки, которые показываются в статусной строке и говорят, о том кто должен стрелять, а кто ждать.
В игре предусмотрен подсчёт счёт. Счёт ведётся как количество убитых вами кораблей и количество убитых у вас кораблей. При проигрыше или выигрыше игрока выводятся сообщения об этом.
Приложение «Сетевая игра «Морской бой» состоит из одного программного модуля Main. Main – основная функциональная часть программы, в котором реализуются основные функции приложения.
Модуль Main содержит подпрограммы для конфигурирования формы приложения и ее элементов, организации игрового процесса, обработки нажатий клавиш и вызовов пунктов меню.
В главном модуле были реализованы следующие процедуры:
Procedure TForm1.LoadGame;
Procedure TForm1.SetColorOnShape1;
Procedure TForm1.SetColorOnShape2;
Procedure TForm1.EndGame;
Procedure TForm1.RecvSock;
Procedure TForm1.SendSock;
Procedure TForm1.N6Click;
Procedure TForm1.N7Click;
Procedure TForm1.FormDestroy;
Procedure TForm1.N8Click;
Procedure TForm1.FormCreate;
Procedure TForm1.N2Click;
Procedure TForm1.N4Click;
Procedure TForm1.N5Click.
Спецификация подпрограмм главного модуля программы приведена в таблице 1.
Таблица 1 – Спецификация функций модуля Main
Процедура
Назначение
Procedure TForm1.LoadGame
Процедура необходима, для создания
новой игры, для создания поля игрока и
соперника
Procedure TForm1.SetColorOnShape1
Процедура нужна для расстановки
кораблей на поле игрока
Procedure TForm1.SetColorOnShape2
Процедура выстрела
Procedure TForm1.EndGame
Процедура для завершения игры
Procedure TForm1.RecvSock
Процедура для приёма и обработки данных из сокета
Продолжение таблицы 1
Процедура
Назначение
Procedure TForm1.SendSock
Процедура для отправки данных через
сокет
Procedure TForm1.N6Click
Процедура создания сокета и привязки его к порту, делает сокет не блокирующимся
Procedure TForm1.N7Click
Процедура создания сокета и перевода его в не блокирующееся состояние
Procedure TForm1.FormDestroy
Процедура для уничтожения сокета после выхода из игры
Procedure TForm1.N8Click
Процедура создания новой игры
Procedure TForm1.FormCreate
Настройка переменных для работы
приложения по сети
Procedure TForm1.N2Click
Процедура выхода
Procedure TForm1.N4Click
Процедура настройки клиента
Procedure TForm1.N5Click
Процедура настройки сервера
Все используемые, в главном модуле Main, переменные описаны в таблице 2.
Таблица 2 – Спецификация переменных
Имя
Назначение
Тип
Главная программа Main
InetAddr
Структура адреса, соединение сервера
SOCKADDR_IN
InetAddrOut
Структура адреса, адрес куда
необходимо ответить
SOCKADDR_IN
sock
Сокет
TSocket
bPriem
Переменная для распознавания
следующих приходящих данных
(может принимать следующие
значения: данные не нужны, их
обрабатывать не надо, переменная
готова для приёма данных, переменная готова для передачи данных)
(prnot, prinout, proutin)
Pole1
Массив для создания поля игрока
TShape
Pole2
Массив для создания поля противника
TShape
bShips
Переменная, ограничивающая
количество кораблей, которые
можно расставить на игровом поле
Byte
bShipsPlaced
Переменная для подсчёта
расставленных кораблей
Byte
Продолжение таблицы 2
Имя
Назначение
Тип
Главная программа Main
bShipsYouKilled
Переменная для подсчёта убитых
игроком кораблей
Byte
bShipsHeKilled
Переменная для подсчёта убитых у
игрока кораблей
Byte
vx
Позиция по X, в какую точку стреляли
Byte
vy
Позиция по Y, в какую точку стреляли
Byte
blVystrel
Переменная выстрела
Boolean
blGameStatus
Статус игры
Boolean
iLocalPort
Сервера порт
Integer
sServerAddr:
Адрес компьютера
String
iServerPort
Соединение клиента с сервером
Integer
Procedure TForm1.LoadGame
i
Переменная счётчик
Integer
j
Переменная счётчик
Integer
h
Переменная для смещения поля сверху
Integer
w
Переменная для смещения поля слева
Integer
Procedure TForm1.SetColorOnShape1
i
Переменная счётчик
Integer
j
Переменная счётчик
Integer
f
Переменная для проверки кораблей, при расстановке, чтобы они не стояли по диагонали
Boolean
Procedure TForm1.SetColorOnShape2
i
Переменная счётчик
Integer
j
Переменная счётчик
Integer
Procedure TForm1.EndGame
on_off_sock
Переменная для перевода сокета в блокирующее состояние
Longint
i
Переменная счётчик
Integer
j
Переменная счётчик
Integer
Procedure TForm1.RecvSock
Buffer
Переменная для записи данных
Str
iStruckSize
Размер структуры адреса
Integer
i
Переменная счётчик
Integer
j
Переменная счётчик
Integer
Procedure TForm1.SendSock
Buffer
Переменная для записи данных
Str
Продолжение таблицы 2
Имя
Назначение
Тип
Procedure TForm1.N6Click
ws
Данные для версии библиотеки
TWSADATA
on_off_sock
Переменная для перевода сокета в
неблокирующее состояние
Longint
Procedure TForm1.N7Click
ws
Данные для версии библиотеки
TWSADATA
on_off_sock
Переменная для перевода сокета в
неблокирующее состояние
Longint
Procedure TForm1.FormDestroy
Не имеет переменных
Procedure TForm1.N8Click
Не имеет переменных
Procedure TForm1.FormCreate
Не имеет переменных
Procedure TForm1.N2Click
Не имеет переменных
Procedure TForm1.N4Click
Не имеет переменных
Procedure TForm1.N5Click
Не имеет переменных
Текст главного модуля Main приведен в приложении А.
2.2 Руководство пользователя
Главное меню игры содержит два пункта: «Файл» и «Настройки». Пункт меню «Файл» содержит два подпункта: «Новая игра» для начала новой игры и «Выход» для выхода из программы, пункт «Настройки» включает в себя четыре подпункта: «Настройки клиента» для настройки клиентского соединения, «Настройки сервера» для настройки сервера, «Создать игру» для создания игры, «Подключиться к игре» для подключения к игре второго игрока.
После того как пользователь запустит приложение «Project1.exe», появиться окно программа, представленное на рисунке 2.
Рисунок 2 – Вид окно при запуске
После запуска клиенту необходимо настроить клиента и сервера.
Для настройки клиента необходимо нажать подпункт «Настройки клиента» меню «Настройки», появиться окно представленное на рисунке 3.
Рисунок 3 – Вид окна настроек клиента
Необходимо ввести номер адреса для соединения и номер порта. После ввода нажмите «ОК».
Для настройки сервера необходимо нажать подпункт «Настройки сервера» меню «Настройки», появиться окно представленное на рисунке 4.
Рисунок 4 – Вид окна настроек сервера
Необходимо ввести номер порта для соединения. После ввода нажмите «ОК».
После того как настроили клиента и сервера нажимаем «Новая игра» меню «Файл». В игровом окне появиться поле игрока, синим цветом, и поле соперника, белым цветом. Корабли на поле игрока расставляются с помощью курсора мыши, они будут изображены чёрным цветом.
После расстановки кораблей игрок может нажимать подпункт «Создать игру», а соперник «Подключиться к игре». Начинается игра.
Внизу в строке состояния игроки могут видеть счёт игры и в строке состояния появляются подсказки, о том кто должен стрелять, а кто ждать. Это можно посмотреть на рисунках 5 и 6.
Рисунок 5 – Вид окна игрока стреляющего
Рисунок 6 –Вид окна игрока ждущего выстрел
При попадании в корабль соперника, корабль перекрашивается в красный цвет, и у игрока есть ещё один шанс выстрелить, а при промахе – в зелёный. Это представлено на рисунке 7.
Рисунок 7 – Вид окна при попадании и промахе игрока
Внизу ведётся счёт, это видно на рисунке 7, первое – количество убитых вами кораблей, а второе – количество убитых кораблей у вас.
После того как игрок убьёт у противника все корабли у него появится сообщение, показанное на рисунке 8.
Рисунок 8 – Сообщение при победе игрока
А у проигравшего игрока будет сообщение, расположенное на рисунке 9.
Рисунок 9 – Сообщение при проигрыше игрока
После нажатия кнопки «ОК» на появившемся сообщении, окно игры очиститься и для начала новой игры нужно будет нажать «Новая игра».
Для выхода игрока из игры можно нажать подпункт «Выход» меню «Файл» или нажать на «крестик» игрового окна.
Заключение
Пользуясь собственными знаниями и литературой, была проделана работа по созданию приложения «Сетевая игра «Морской бой», в среде разработки Borland Delphi. В результате получилась сетевая игра «Морской бой», в которой ведётся подсчёт потопленных кораблей.
В результате проделанной работы были получены новые знания о возможности использования сокетов, а именно об использовании неблокирующих сокетов протокола без логического соединения (UDP).
Использование данной игры не требует особых знаний и усилий со стороны пользователя и больших затрат ресурсов компьютера. Поэтому она может использоваться широким кругом пользователей
Литература
Дарахвелидзе П.Г., Марков Е.П. Программирование в Delphi 7. – СПб.: БВХ-Петербург, 2003. – 784 с.: ил.