На тему: «разработка игрового оконного приложения «морской бой» 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

На тему: «разработка игрового оконного приложения «морской бой»



Курсовой проект

На тему: «Разработка игрового оконного приложения «Морской бой»

Выполнил: студент 4 курса

факультета информатики

очной формы обучения

Круглов В.Н.

Научный руководитель:

                                      к.т.н., доцент кафедры информатики Аносов Ю.В.

_________________

 

Орехово-Зуево

2015


Оглавление

 

ВВЕДЕНИЕ.. 3

ЗАДАНИЕ НА ПРОЕКТИРОВАНИЕ И РАЗРАБОТКУ.. 6

ГЛАВА 1. Теоретические основы разработки игровых приложений. 7

1.1 Классификация игрового программного обеспечения. 7

1.2 Развивающие игры.. 12

1.3 Использование инструментальной среды «Delphi» при проектировании и разработке игровых программных приложений. 14

ГЛАВА 2. Проектирование и разработка игрового оконного приложения «Морской бой». 20

2.1 Определение необходимой функциональности разрабатываемого приложения и проектирование его структуры.. 20

2.2 Проектирование и разработка пользовательского интерфейса и оболочки приложения. 20

2.3 Разработка алгоритмов, реализующих логику поведения компьютерного интеллекта, отвечающего за действия виртуального игрока. 23

2.4. Тестирование разработанного программного продукта. 26

ЗАКЛЮЧЕНИЕ.. 27

СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ... 29

ПРИЛОЖЕНИЯ.. 31

Приложение 1. Руководство пользователя. 31

Приложение 2. Исходный код главного модуля программы «Project1.dpr» 32

Приложение 3. Исходный код модуля первой формы «Unit1.pas». 32

Приложение 4. Исходный код модуля второй формы «Unit2.pas». 49

 

 


ВВЕДЕНИЕ

Игровое программное обеспечение или «компьютерные игры» – это средства для обеспечения одного из видов игровой деятельности человека, основанные на использовании мультимедийных возможностей современной компьютерной техники и технологиях создания виртуальной (альтернативной) реальности.

В целом – компьютерные игры сходны с так называемыми традиционными играми, однако им присущи собственные, принципиально отличающие их от традиционных игр, особенности.

Отдельно следует отметить развивающие компьютерные игры.  Развивающие компьютерные игры – это компьютерные программы, служащие для организации игрового процесса, главной целью которого является развитие личности ребенка. Т.е. понятие развивающих игр напрямую связано, с детским, обычно дошкольным и младшим школьным периодами жизни человека.

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

В связи с этим, разработка новых развивающих компьютерных игр современного уровня той или иной направленности, ориентированных на детей дошкольного и младшего школьного возраста, – представляется весьма актуальной.

 В качестве объекта исследования в данном курсовом проекте выступают технологии проектирования и разработки интерактивных мультимедийных игровых программных интерфейсов и игровых логик с элементами искусственного интеллекта.

  Предметом исследования является изучение возможностей инструментальной среды «Delphi» при проектировании и разработке игровых программных приложений.

Целью данной работы является проектирование, и разработка игрового программного приложения (Развивающая игра «Морской бой»), предназначенного для стимуляции и развития у детей дошкольного и младшего школьного возраста таких навыков, как: логика мышления, воображение; планирование собственных действий.

Для достижения поставленной в работе цели необходимо решить следующие задачи:

1. рассмотреть виды и классификацию компьютерных игр и особенности их интерфейсов;

2. изучить возможности инструментальной среды «Delphi» при проектировании и разработке игровых программных приложений;

3. спроектировать и реализовать развивающее игровое программное приложение (Развивающая игра «Морской бой»), обладающее развитым мультимедийным интерфейсом и встроенной логикой;

4. провести тестирование разработанного приложения на его соответствие поставленной задаче, работоспособности, устойчивости и совместимости с различными операционными системами.

Для осуществления разработки была выбрана инструментальная среда разработки Delphi 2006 Explorer. Указанная среда была выбрана, по тому, что обладает широким спектром возможностей, позволяет разрабатывать программные приложения современного уровня и является бесплатной для использования в учебных целях и при разработке некоммерческих приложений.

Практическая значимость данного курсового проекта состоит в том, что разработанное приложение:

Ø полностью соответствует поставленной цели;

Ø отвечает всем необходимым требованиям;

Ø реализует все заявленные функции;

Ø стимулирует развитие у детей дошкольного и младшего школьного возраста логику мышления, воображение, способность планирования собственных действий;

Ø может быть использовано в качестве базы программного кода при разработке более сложных программных приложений, использующих различные мультимедийные данные;

Ø представляет собой готовый шаблон для разработки приложений, управляемых событиями с элементами автоматического принятия решений на основе встроенной логики.

Кроме того, разработанное приложение является полноценной компьютерной игрой и может быть использовано по своему прямому назначению.

Структура работы.

Работа состоит из введения, задания на разработку, двух глав, заключения, списка использованной в процессе работы литературы и приложений.

Во введении обосновывается актуальность выбранной темы, формулируется цель работы, определяются задачи и практическая значимость работы.

В задании на разработку подробно излагаются общие положения задания и требования к функциональности, пользовательскому интерфейсу и совместимости.

Первая глава посвящена изучению классификации игровых программных приложений (компьютерных игр), особенностям развивающих игр, обзору игровых приложений, ориентированных на развитие логики мышления у детей дошкольного и младшего школьного возраста, а также изучению возможностей инструментальной среды «Delphi» при проектировании и разработке подобных программных приложений.

Вторая глава целиком посвящена проектированию и разработке развивающего игрового программного приложения (Развивающая игра «Морской бой»). В этой главе осуществляется:

Ø определение структуры разрабатываемого приложения;

Ø определение необходимой функциональности, проектирование и разработка пользовательского интерфейса и оболочки приложения;

Ø разработка алгоритмов, реализующих логику поведения компьютерного интеллекта, отвечающего за действия виртуального игрока;

Ø приводятся результаты тестирования разработанного продукта.

В заключении проводится анализ разработанного приложения на предмет соответствия его поставленной задаче.

Список использованной литературы содержит 23 печатных источника.

Объем основной части работы (введение, задание на проектирование и разработку, две главы и заключение) составляет 26 страниц.

Результатом работы является действующее развивающее игровое программное приложение (Развивающая игра «Морской бой»), совместимое с операционными системами линейки «Windows».

Разработанное приложение в полной мере соответствует заявленным требованиям и готово к использованию.


ЗАДАНИЕ НА ПРОЕКТИРОВАНИЕ И РАЗРАБОТКУ

Общие положения задания и требования к функциональности

В ходе работы на данным курсовым проектом необходимо спроектировать и разработать развивающее игровое программное приложение (Развивающую игру «Морской бой»).

Приложение должно содержать следующий набор функций:

Ø автоматическую организацию игрового пространства и его визуализацию с использованием мультимедиа данных;

Ø динамическое обновление игрового пространства в процессе игры;

Ø автоматическую расстановку кораблей виртуального противника;

Ø удобный редактор для расстановки кораблей игрока;

Ø встроенную логику поведения виртуального противника;

Ø сведения о программе;

Ø систему помощи.

Требования к интерфейсу приложения

Исходя из специфики задачи пользовательский интерфейс разрабатываемого приложения должен быть предельно простым, прозрачным, интуитивно понятным, но, в то же время, ярким, красочным, использующим мультимедийные возможности компьютера (загрузку и отображение изображений, звуковое сопровождение, и т.д.

Выполнение всех действий пользователя должно бить организовано максимально удобным для него способом.

Требования к совместимости с операционными системами

Разрабатываемое приложение должно быть ориентировано на операционные системы линейки «Windows».

Требования к совместимости с аппаратным обеспечением

Приложение должно обеспечивать стабильную, устойчивую работу на любой аппаратной базе, рекомендованной для перечисленных версий операционных систем.

 


Развивающие игры

Развивающие компьютерные игры – это компьютерные программы, служащие для организации игрового процесса, главной целью которого является развитие личности ребенка. Т.е. понятие развивающих игр напрямую связано, с детским, обычно дошкольным или младшим школьным периодами жизни человека. При этом дети, играющие в развивающие компьютерные игры, развивают все эти качества незаметно для самих себя и, кроме того, тренируют мышление, изобретательность, воображение.

 В основе развивающих игр чаще всего находится некоторая задача, которая содержит определенную познавательную трудность, т.е. ориентирована на перспективный уровень умений.

Подбирая дошкольнику такие игры, стоит учитывать, что условие поставленной в игре задачи должно соответствовать уровню развития ребенка, содержание игры должно быть ему понятно и доступно, а решение задачи ориентировано на «ближайший уровень развития». Только при таких условиях компьютерная игра будет стимулировать общее развитие дошкольника.

Типы, характер, содержание и оформление развивающих игр определяются конкретными воспитательными задачами применительно к возрасту детей с учётом их развития и интересов.

В настоящее время уже существует огромное количество разнообразных развивающих компьютерных игр нескольких категорий:

· конструкторские программы, в процессе которых детям надо либо сложить из разных частей фигуру определенной формы, либо, наоборот, разбить имеющуюся фигуру на заданные части. Эти программы развивают не только восприятие и координацию, но и образное мышление детей, а также усидчивость, усердие, терпение. Например, паззлы, тетрис, сложи узор.

· «конструкторы сказок», совмещающие возможности текстового и графического редакторов для формирования и воспроизведения иллюстраций. В таких программах можно «сыграть» сказку на компьютере, а можно распечатать иллюстрации, вырезать и создать настольный театр. Такой вариант игр подходит для групповой работы и способствует развитию воображения, восприятия, речевых навыков, коммуникабельности, положительного эмоционального настроя и т.д.

· программы, направленные на развитие зрительно-моторной координации ориентации ребенка в пространстве. Это различные лабиринты, по которым необходимо протащить предмет или игры, задачей которых является быстро поймать фигуру.

· головоломки или игры, на развитие логического мышления.

· игры на развитие внимания и памяти. Это, например, игры на сравнение картинок (найди отличия, найди пару, найди тень), игры на поиск спрятанных предметов. При использовании подобных игр происходит развитие не только внимания и памяти, но и усидчивость и терпение.

Развивающие компьютерные игры могут иметь и просто творческий характер и не иметь конкретной задачи. Целью таких игр может быть развитие цветового восприятия, слухового опыта, побуждение познавательной активности, становление образно-символического мышления и т.п. К таким играм можно отнести различные графические редакторы, «раскраски», музыкальные игры, и т.п.

Следует отметить, что, не смотря на то, что основной целю развивающих компьютерных игр ориентирована на общее развитие дошкольников, в них могут содержаться и обучающие элементы. Т.е. такие игры могут иметь ряд дополнительных целей, направленных на усвоение детьми определенных знаний и умений. В частности, играя в развивающие компьютерные игры, дети параллельно осваивают компьютер, учат цвета, формы, порядковый счет и т.д.

Компонент TMainMenu

  TMainMenu позволяет поместить влюбое из окон (экранных форм) программы главное меню. При помещении TMainMenu на форму данный компонент выглядит, просто как иконка. Иконки данного типа называют невидимым (невизуальным) компонентом, поскольку они невидимы во время выполнения программы. Создание меню включает три шага:

1. помещение TMainMenu на форму,

2. вызов Дизайнера Меню через свойство Items в Инспекторе Объектов,

3. определение пунктов меню в Дизайнере Меню.

Этот компонент доступен из модуля MENUS, и находится на странице Палитры компонентов Standard

Этот компонент представляет главное меню формы и наследует все методы и свойства TMenu. Особенность его в том, что в нем реализован сложный механизм объединения меню. Это необходимо по следующим причинам:

1. Если в приложении имеется несколько форм со своими меню, то для упрощения работы целесообразно соединить их в одно и управлять меню из главной формы.

2. Объединение меню нужно при работе с интерфейсом MDI (Мульти Документный Интерфейс) и его подокнами.

3. Механизм объединения меню используется серверами OLE, запускаемыми по месту нахождения объекта OLE. Загружаясь, сервер дописывает осу­ществляемые им операции к меню другого приложения.

Для того чтобы реализовать объединение меню, у тех форм, меню которых будут присоединены к главному, необходимо установить в True свойство:

(Р b) property AutoMerge: Boolean.

При этом у главного меню оно должно оставаться равным False, иначе главное меню будет невидимым. Объединение будет происходить автоматически при активизации новых форм или серверов OLE. Кроме автоматического режима, объединение меню можно выполнить при вызове метода:

procedure Merge(Menu: TMainMenu).

Компонент TLabel

TLabel служит для отображения текста на экране. Можно изменить шрифт и цвет метки, если дважды щелкнуть на свойство Font в Инспекторе Объектов. Видно, что это легко сделать и во время выполнения программы, написав всего одну строчку кода.

Этот компонент доступен из модуля STDCTRLS, и находится на странице Палитры компонентов Standard.

Компонент представляет собой статический текст. С помощью этого компо­нента на рабочей поверхности формы можно отобразить информацию, сделать пояснения и показать названия других компонентов.

Но он имеет и другую важную функцию — если в составе текста TLabel есть символы-акселераторы, информация об их нажатии может передаваться от TLabel другому элементу управления.

Свойства компонента приведены в табл.1:

Таблица 1

Свойства компонента TLabel

Свойство Описание
(Pb) property Caption: TCaption; TCaption = string[255]; Содержит строку с выводимым текстом.
(Pb) property Alignment: TAlignment; Устанавливает правило выравнивания текста — по правому, левому краю или по центру клиентской области.
(Pb) property AutoSize: Boolean; В случае True происходит автоматическое приведение размеров компонента к размерам текста и высоте шрифта.
(Pb) property FocusControl: TWinControl; Определяет оконный компонент, которому посылаются сообщения о вводе акселе­ратора.
(Pb) property Transparent: Boolean; Прозрачность фона компонента. Если свойство установлено в True, то при перерисовке элемента управления не про­исходит закрашивание клиентской облас­ти. В противном случае — происходит закрашивание кистью bsSolid и цветом Color.
(Pb) property WordWrap: Boolean; Определяет возможность разрыва слов в случае, если длина выводимого текста превышает ширину компонента.

Компонент TPanel

TPanel – управляющий компонент, похожий на TGroupBox, используется в декоративных целях. Чтобы использовать TPanel, просто поместите его на форму и затем положите другие компоненты на него. Теперь при перемещении TPanel будут передвигаться и эти компоненты. TPanel используется также для создания панели инструментов и окна статуса.

Этот компонент доступен из модуля EXTCTRLS, и находится на странице Палитры компонентов Standard.

Этот компонент — является несущей конструкцией для размещения других элементов управления. В отличие от простой рамки (TBevel) панель сама является оконным элементом управления и родителем для всех размещенных на ней компонентов. Часто ее используют для создания панелей инстру­ментов, строк состояния и т. п.

За внешнее оформление панели отвечают свойства:

(Pb) property Bevel Inner: TPanelBevel;

(Рb) property BevelOuter: TPanelBevel;

TPanelBevel = (bvNone, bvLowered, bvRaised);

(Pb) property BevelWidth: TBevelWidth;

TBevelWidth = 1..Maxint;

(Pb) property BorderWidth: TBorderWidth;

TBorderWidth = 0..Maxint;

На границах панели размещаются две специальные окаймляющие рамки (bevels): Bevellnner и BevelOuter. При помощи комбинации белого и серого цветов они имитируют трехмерность — приподнятость (bvRaised) или утоп-ленность (bvLowered). Обе рамки имеют ширину BevelWidth. Наружная — BevelOuter — расположена прямо по периметру панели, вторая — Bevellnner — внутри на расстоянии BorderWidth от нее. Обе могут быть невидимыми (bvNone), приподнятыми или утопленными.

Комбинируя сочетания bvLowered/bvRaised, можно создать вокруг панели "ров" или "вал".

Иллюзию трехмерности может подчеркнуть также стиль обрамления компо­нента:

(Pb) property BorderStyle: TBorderStyle;

TBorderStyle = bsNone.. bsSingle;

Значение bsSingle означает, что панель будет окаймлена черной линией единичной толщины (по периметру, снаружи от обеих рамок).

Выравнивание текста заголовка панели определяется при помощи свойства:

(Pb) property Alignment: TAlignment;

Компонент TImage

TImage - отображает графическое изображение на форме. Воспринимает форматы BMP, ICO, WMF. Если картинку подключить во время дизайна программы, то она прикомпилируется к EXE файлу.

Этот компонент доступен из модуля EXTCTRLS, и находится на странице Палитры компонентов Additional.

Этот компонент служит надстройкой над классом TPicture и замыкает всю иерархию графических объектов VCL. Он предназначен для показа на форме изображения: битовой карты (TBitmap), метафайла (TMetafile), значка (TIcon).

Свойство (Pb) property Picture: TPicture; служит контейнером для графического объекта одного из перечисленных клас­сов.

В качестве канвы используется канва объекта Picture. Graphic — только если поле Graphic ссылается на объект класса TBitmap:

(Pb) property Canvas: TCanvas;

Если это не так, то попытка обращения к свойству вызовет исключительную ситуацию EInvalidOperation, так как рисовать на метафайле или значке нельзя.

Следующие три свойства определяют, как именно Tpicture располагается в рабочей области компонента:

(Pb) property AutoSize: Boolean;

— означает, что размеры компонента настраиваются по размерам содержащегося в нем графического объекта. Устанавливать его в True нужно перед загрузкой изображения из файла или буфера обмена;

(Pb) property Stretch: Boolean;

— если это свойство установлено в True, то изображение "натягивается" на рабочую область, при необходимости уменьшая или увеличивая свои размеры. Если оно установлено в False, то играет роль следующее свойство;

(Pb) property Center: Boolean;

— если это свойство установлено в True, изображение центрируется в пределах рабочей области. В противном случае — располагается в ее верхнем левом углу.

 

 


Планирование и нанесение ударов виртуальным игроком

Данная функция программы реализована при помощи процедуры vistrel.

Выстрел производится при нажатии на одну из клеток поля компьютера. Если ячейка имеет значение «0» (пустая клетка) то ячейке присваивается значение «3», ячейка имеет значение «2» то ячейке присваивается значение «4».

Затем происходит прорисовка поля компьютера. Клетка, которой соответствует ячейка со значением «3» рисуется маленький квадрат, клетка которой соответствует ячейка со значением «4» проверяется ранен или убит корабль если убит, то рисуется красный квадрат, если ранен, то рисуется серый квадрат перечеркнутый красным крестом.

После происходит проверка выиграл ли игрок или нет, для этого матрица компьютера сканируется и если не находится ни одной ячейки со значением «2», то выходит сообщение: – «Поздравляю! Вы победили.»

Если же находится то проверяется если игрок опал в ячейку со значением «2» то ему предоставляется ещё один выстрел, и т. д. пока игрок не попадет в ячейку со значением «0».

Тогда наступает очередь хода компьютера.

Компьютер выбирает произвольную клетку из поля игрока и если её значение равно «0», то значение становится равным «3», если значение равно «2» от значение клетки становится равным «4».

Затем происходит прорисовка поля компьютера. Клетка, которой соответствует ячейка со значением «3» рисуется маленький квадрат, клетка которой соответствует ячейка со значением «4» проверяется ранен или убит корабль если убит, то рисуется красный квадрат, если ранен, то рисуется серый квадрат перечеркнутый красным крестом.

Компьютер стреляет до тех пор, пока не попадет в клетку со значением «0».

После происходит проверка проиграл ли игрок или нет, для этого матрица игрока сканируется и если не находится ни одной ячейки со значением «2» то выходит сообщение: – «Вы проиграли. Попробуйте ещё раз!»

ЗАКЛЮЧЕНИЕ

Целью данного курсового проекта являлось проектирование и разработка игрового программного приложения (Развивающая игра «Морской бой»), предназначенного для стимуляции и развития у детей дошкольного и младшего школьного возраста таких навыков, как: логика мышления, воображение; планирование собственных действий.

В ходе проделанной работы:

Ø рассмотрены виды и классификация компьютерных игр и особенности их интерфейсов;

Ø изучены возможности инструментальной среды «Delphi» при проектировании и разработке игровых программных приложений;

Ø разработаны алгоритмы, реализующие логику поведения компьютерного интеллекта, отвечающего за действия виртуального игрока;

Ø спроектировано и реализовано развивающее игровое программное приложение (Развивающая игра «Морской бой»), обладающее развитым мультимедийным интерфейсом и встроенной логикой;

Ø проведено тестирование разработанного приложения на его соответствие поставленной задаче, работоспособность, устойчивость и совместимость с различными операционными системами.

Проектирование и разработка были выполнены в инструментальной среде «Delphi 2006 Explorer».Данный выбор был детально обоснован.

Проведённое финальное тестирование показало, что разработанное приложение:

v полностью соответствует поставленной цели;

v отвечает всем необходимым требованиям;

v реализует все заявленные функции;

v совместимо с большинством операционных систем линейки «Windows»;

v нетребовательно к аппаратным ресурсам компьютера (работа возможна даже на компьютерах модели Pentium-3 с частотой 400 МГц.);

v обладает простым, наглядным, интуитивно-понятным интерфейсом;

v стимулирует развитие у детей дошкольного и младшего школьного возраста логику мышления, воображение, способность планирования собственных действий.

Дополнительно можно отметить, что разработанное приложение:

Ø может быть использовано в качестве базы программного кода при разработке более сложных программных приложений, использующих различные мультимедийные данные.

Ø представляет собой готовый шаблон для разработки приложений, управляемых событиями с элементами автоматического принятия решений на основе встроенной логики.

Кроме того, разработанное приложение является полноценной компьютерной игрой и может быть использовано по своему прямому назначению.

В ходе работы все задачи решены, поставленная цель достигнута.

 


СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ

Международные стандарты

  1. MIL-STD-498. Разработка и документирование программного обеспечения.
  2. ISO 9126:1991. Информационная технология. Оценка программного продукта. Характеристики качества и руководство по их применению.
  3. ANSI/IEEE 829-1983. Документация при тестировании программ.
  4. ANSI/IEEE 1008-1986. Тестирование программных модулей и компонентов ПС.

Стандарты РФ в соответствии со стандартами ISO

  1. ГОСТ Р ИСО/МЭК 9294-93. Информационная технология. Руководство по управлению документированием программного обеспечения.
  2. ГОСТ Р ИСО/МЭК 9127-94. Системы обработки информации. Документация пользователя и информация на упаковке для потребительских программных пакетов.
  3. ГОСТ Р ИСО/МЭК 12119:1994. Информационная технология. Пакеты программных средств. Требования к качеству и испытаниям.

Стандарты «Единой Системы Программной Документации»:

  1. ГОСТ 19.001-77 ЕСПД. Общие положения.
  2. ГОСТ 19.103-77 ЕСПД. Обозначение программ и программных документов.
  3. ГОСТ 19.105-78 ЕСПД. Общие требования к программным документам.
  4. ГОСТ 19.201-78 ЕСПД. Техническое задание. Требования к содержанию и оформлению.
  5. ГОСТ 19.504-79 ЕСПД. Руководство программиста. Требования к содержанию и оформлению.
  6. ГОСТ 19.505-79 ЕСПД. Руководство оператора. Требования к содержанию и оформлению.

По разработке информационных систем и программированию

  1. Благодатских В.А., Волнин В.А., Поскакалов К.Ф. Стандартизация разработки программных средств. – М.: Финансы и статистика, 2003 г.
  2. Бобровский С. Программирование в Delphi 7. – СПб.: Информ-Пресс, 2011 г. – 806 c.
  3. Вигерс К. Разработка требований к программному обеспечению. Пер. с англ. - М.: Издательско-торговый дом "Русская Редакция", 2011 г. –576 с.
  4. Котляров В. П., Коликова Т. В. Основы тестирования программного обеспечения. – М.: Бином. Лаборатория знаний, 2011 г. –288 с.
  5. Липаев В.В. Надежность программных средств. – М.: СИНТЕГ, 1998 г.
  6. Липаев В.В. Документирование и управление конфигурацией программных средств – М.: СИНТЕГ, 1998 г.
  7. Липаев В.В. Системное проектирование сложных программных систем. – М.: СИНТЕГ, 1998 г.
  8. Орлов С.А. Технологии разработки программного обеспечения: Разработка сложных программных систем: Учебное пособие для студентов вузов, обуч. по напр. подготовки бакалавров и магистров «Информатика и выч. техника». – СПб.: Питер, 2002 г.
  9. Пальчун Б.П., Юсупов Р.М. Оценка надежности программного обеспечения. – СПб.:Наука, 1994 г.
  10. Шикин А. В., Боресков А. В. Компьютерная графика. Динамика, реалистические изображения. – M.: ДИАЛОГ-МИФИ, 1998 г. – 288 с.

ПРИЛОЖЕНИЯ

Приложение 1.  Руководство пользователя

Запуск приложения.

Приложение полностью готово к использованию и не требует никаких предварительных настроек. Для запуска программы достаточно запустить исполняемый файл: «Project1.exe»

Расстановка кораблей.

В начале игры пользователю необходимо расположить на своём игровом поле (левое поле) собственные корабли. При этом в правом игровом поле (поле виртуального противника) выдаётся соответствующая подсказка.

Расстановка кораблей осуществляется нажатием левой кнопки «Мыши» и сопровождается характерным звуковым сигналом.

Контроль положения кораблей пользователя выполняется автоматически, что не позволит пользователю расположить их в положениях, запрещённых правилами игры.

После того, как все корабли игрока расставлены приложение автоматически переходит в состояние «Игра»

Игра.

При входе в режим «Игра», подсказка в правом поле (поле виртуального противника) исчезает, а само поле превращается в координатную сетку поля боя.

Нанесение ударов осуществляется пользователем нажатиями левой кнопки «мыши» в пределах квадратов координатной сетки поля виртуального противника.

Каждый выстрел сопровождается соответствующим звуковым фрагментом.

В случае промаха соответствующая клетка поля боя помечается точкой.

В случае попадания – в клетке отображается часть пораженного корабля виртуального противника.

Завершение игры.

Игра завершается в четырёх случаях:

1. Пользователь выиграл. В этом случае выдаётся соответствующее сообщение и проигрывается победная музыка.

2. Пользователь проиграл. В этом случае также выдаётся соответствующее сообщение и проигрывается музыка поражения.

3. Пользователь может прервать игру и переиграть её заново нажав пункт меню «Новая игра».

4. Пользователь может просто закрыть приложение нажав стандартную кнопку закрытия окна.

 

Приложение 2. Исходный код главного модуля программы «Project1.dpr»

program Project1;

Uses

Forms,

Unit1 in 'Unit1.pas' {Form1},

Unit2 in 'Unit2.pas' {Form2};

{$R *.res}         // Основные Ресурсы

{$R Dop_resources.RES} // Дополнительные Ресурсы (Звуки)

Begin

Application.Initialize;

//Application.HelpFile:= 'F:\Информатика\Курсовая\Delphi\работа\исодник программы\morb.HLP';

Application.HelpFile:= 'morb.HLP';

Application.Title:= 'Морской бой';

Application.CreateForm(TForm1, Form1);

Application.CreateForm(TForm2, Form2);

Application.Run;

End.

    

 

Приложение 3. Исходный код модуля первой формы «Unit1.pas»

 

unit Unit1;

Interface

Uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, ExtCtrls, StdCtrls, Menus, XPMan, Mmsystem;

Type

TForm1 = class(TForm)

Panel1: TPanel;

Image1: TImage;

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Label4: TLabel;

Label5: TLabel;

Label6: TLabel;

Label7: TLabel;

Label8: TLabel;

Label9: TLabel;

Label10: TLabel;

Label11: TLabel;

Label25: TLabel;

Panel2: TPanel;

Image2: TImage;

Label13: TLabel;

Label14: TLabel;

Label15: TLabel;

Label16: TLabel;

Label17: TLabel;

Label18: TLabel;

Label19: TLabel;

Label20: TLabel;

Label21: TLabel;

Label22: TLabel;

Label23: TLabel;

Label26: TLabel;

MainMenu1: TMainMenu;

N1: TMenuItem;

N2: TMenuItem;

N3: TMenuItem;

N4: TMenuItem;

N6: TMenuItem;

N5: TMenuItem;

Label12: TLabel;

Label24: TLabel;

Label27: TLabel;

Label28: TLabel;

Label29: TLabel;

procedure FormCreate(Sender: TObject);

procedure rastkor(Sender: TObject; Shift: TShiftState; X, Y: Integer);

procedure nash(Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);

procedure N2Click(Sender: TObject);

procedure vistrel(Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);

procedure N3Click(Sender: TObject);

procedure N5Click(Sender: TObject);

procedure N6Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

Var

Form1: TForm1;

i, j, g, x 1, y 1, k 11, k 21,

k 33, k 32, k 31, m 3, m 2, m 1,      //кол-во 3х 2х 1х кораблей

m, n, z: integer;

rot,              //ротация кораблей

riad, rnd,         //для того что бы рядом не ставились,нужна для рандомирования

win, lose,         //проверка на победу или поражение

bum,              //проверка выстрела компьютера

kon,              //проверка конца игры

cokil: boolean;     //попал ли комрьютер

b1,b2:Array[1..14,1..14] of integer;

Implementation

uses Unit2;

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);

Begin

PlaySound('START_WAV', HInstance, SND_RESOURCE or SND_ASYNC or SND_NOWAIT);

rot:= false; //заполнение переменных

kon:= false;

k11:=3;

k33:=2;

k32:=5;

k31:=9;

m3:=0;

m2:=0;

m1:=0;

label13.Height:=0;

label14.Height:=0;

label15.Height:=0;

label16.Height:=0;

label17.Height:=0;

label18.Height:=0;

label19.Height:=0;

label20.Height:=0;

label21.Height:=0;

label22.Height:=0;

label23.Height:=0;

label26.Height:=0;

label12.Caption:='Расставьте корабли';

For i:=1 to 10 do //рисует сетку поля игрока

for j:=1 to 10 do

begin

b1[i,j]:=0;

image1.Canvas.Rectangle(20*i-20,20*j-20,20*i,20*j);

end;

randomize;

 m:=random(10)+1;

 n:=random(10)+1;

 z:=(random (100) mod 2);

//расстановка клораблей компьютера

//четырехпалубный

Case n of

1..7:

case m of

1..7: for i:=0 to 3 do

         if z=0 then

           b2[m+i,n]:=2

         else

           b2[m,n+i]:=2;

8..10: for i:=0 to 3 do

         if z=0 then

           b2[m-i,n]:=2

         else

           b2[m,n+i]:=2;

end;

8..10:

case m of

1..7: for i:=0 to 3 do

         if z=0 then

           b2[m+i,n]:=2

         else

           b2[m,n-i]:=2;

8..10: for i:=0 to 3 do

         if z=0 then

           b2[m-i,n]:=2

         else

           b2[m,n-i]:=2;

end;

end;

           //трехпалубные

while m3<2 do begin

m:=random(10)+1;

n:=random(10)+1;

z:=(random(100) mod 2);

Case n of

1..7:

case m of

1..7: case z of

            0: if (b2[m,n]<>2) and

                      (b2[m-1,n-1]<>2) and

                      (b2[m-1,n]<>2) and

                      (b2[m-1,n+1]<>2) and

                      (b2[m,n-1]<>2)and

                      (b2[m+1,n+1]<>2)and

                      (b2[m+1,n]<>2) and

                      (b2[m+1,n-1]<>2) and

                      (b2[m,n+1]<>2) and

                      (b2[m+1,n+2]<>2) and

                     (b2[m-1,n+2]<>2) and

                      (b2[m,n+2]<>2) and

                      (b2[m+1,n+3]<>2) and

                      (b2[m-1,n+3]<>2) and

                      (b2[m,n+3]<>2) and

                      (b2[m,n+3]<>2) then

                         begin

                     for i:=0 to 2 do

                     b2[m,n+i]:=2;

                       m3:=m3+1

                         end;

              1: if (b2[m,n]<>2) and

                      (b2[m+1,n+1]<>2) and

                      (b2[m,n+1]<>2) and

                      (b2[m-1,n+1]<>2) and

                      (b2[m-1,n]<>2)and

                      (b2[m-1,n-1]<>



Поделиться:


Последнее изменение этой страницы: 2021-05-12; просмотров: 62; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.145.115.195 (0.281 с.)