Смекни!
smekni.com

РАЗРАБОТКА ИГРЫ МОРСКОЙ БОЙ С AI (стр. 1 из 5)

Министерство общего и профессионального образования

Российской Федерации

Государственное образовательное учреждение высшего профессионального образования

САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ

ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ

МЕХАНИКИ И ОПТИКИ

ФАКУЛЬТЕТ СРЕДНЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ

КУРСОВАЯ РАБОТА

на тему: РАЗРАБОТКА ИГРЫ «МОРСКОЙ БОЙ» С AI

По дисциплине «Технология Разработки Программных Продуктов»

Специальность «Программное обеспечение вычислительной техники и автоматизированных систем» (230105)

Преподаватель:

«___»_________20__г.

Выполнил:

Индыков Максим Игоревич

гр. 323 дневного отделения

Санкт-Петербург

2011


АННОТАЦИЯ

Цель работы - создать игру "морской бой" с противником, обладающим искусственным интеллектом, запускаемую на ОС Android 2.2.

При разработке была поставлена задача создать противника совершающего логичные действия и стремящегося выиграть.

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


СОДЕРЖАНИЕ

ВВЕДЕНИЕ....................................................................................................................... 4

1 ОПРЕДЕЛЕНИЕ ТРЕБОВАНИЙ............................................................................. 4

1.1 Описание бизнес процесса................................................................................ 4

1.2 Сравнение аналогов............................................................................................ 5

1.3 Моделирование требований............................................................................... 6

1.4 Выбор модели жизненного цикла..................................................................... 7

2 ПРОЕКТИРОВАНИЕ.................................................................................................. 9

2.1 Выбор модели системы....................................................................................... 9

2.2 Проектирование структуры системы............................................................... 9

2.3 Проектирование логики работы...................................................................... 10

2.4 Проектирование интерфейса........................................................................... 13

3 РАЗРАБОТКА ПРОГРАММНОГО КОДА........................................................... 15

4 ВЕРИФИКАЦИЯ И АТТЕСТАЦИЯ...................................................................... 16

4.1 Выбор методов верификации и аттестации.................................................. 16

4.2 Инспектирование............................................................................................... 16

4.3 Тестирование....................................................................................................... 17

5 ПРОГРАММНАЯ ДОКУМЕНТАЦИЯ.................................................................. 18

5.1 Инструкция по установке................................................................................ 18

5.2 Инструкция пользователя............................................................................... 18

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

СПИСОК ИСТОЧНИКОВ ИНФОРМАЦИИ........................................................... 20

ПРИЛОЖЕНИЕ A ТЕХНИЧЕСКОЕ ЗАДАНИЕ.................................................... 21

1НАЗНАЧЕНИЕ РАЗРАБОТКИ................................................................................ 21

2 ЦЕЛЬ И ЗАДАЧИ....................................................................................................... 21

3 ТРЕБОВАНИЯ К РАЗРАБОТКЕ........................................................................... 21

3.1Требованияк функциональным характеристикам...................................... 21

3.2 Описание входных и выходных данных...................................................... 22

3.3 Модель работы продукта разработки............................................................. 23

3.4 Требования к надежности................................................................................ 25

3.5 Эргономические и техникоэстетические требования.............................. 25

3.6 Требования к защите информации.................................................................. 26

3.7 Другие требования к разработке..................................................................... 26

3.8 Требования к аппаратно-программному комплексу................................ 26

3.9 Требования к технологиям разработки......................................................... 26

3.10 Требования к составу технических средств при эксплуатации........... 26

4 МЕТОДЫ ТЕСТИРОВАНИЯ СООТВЕТСТВИЯ РАЗРАБОТКИ ПРЕДЪЯВЛЕННЫМ ТРЕБОВАНИЯМ....................................................................................................................... 26

ПРИЛОЖЕНИЕ Б ПРОГРАММНЫЙ КОД............................................................. 27


ВВЕДЕНИЕ

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

Данный документ содержит следующую информацию:

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

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

· в разработке программного кода содержится краткий обзор разработанных функций;

· в верификации и аттестации описывается, как будет выполняться тестирование проекта;

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

1 ОПРЕДЕЛЕНИЕ ТРЕБОВАНИЙ

1.1 Описание бизнес процесса

Необходимо реализовать игру Морской бой между компьютером и человеком. Доказать то, что компьютер пытается выиграть.

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

Игра проходит на поле размером 10 на 10 клеток.

На поле размещаются 10 кораблей (один 4-х палубный, два 3-х палубных, три 2-х палубных и один 1-палубный).

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

Различные корабли, имеют различный режим атаки и радиус.

Выстрелы делаются по-очереди. Если при выстреле произошло попадание в корабль, игроку предоставляется дополнительный выстрел.

Побеждает тот, кто первым потопит флот противника.

Так как на большинстве платформ уже имеется некоторое количество подобных проектов, разработка будет вестись для мобильных систем на базе ОС Android.

1.2 Сравнение аналогов

1.Морской бой на flash, официальный сайт:

http://www.flashzona.ru/i3529

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

2. Battle Ships, официальный сайт:

http://www.androidfreeware.net/download-battleships.html

Игра, разработка под Android 1.5.Не нужно ждать пока ваш противник сделает выстрел, вы просто делаете их подряд, наблюдая как ваш противник, ходит одновременно с вами. Что не очень привычно. Не нужно расставлять корабли вы просто выбираете одну из случайно предложенных расстановок кораблей. Так же автоматически закрываются ячейки, куда уже нельзя поставить корабли, что удобно для расчета спрятанных кораблей противника.

3. Sea Battle, официальный сайт:

http://android-apps.com/featured/sea-battle/

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

Таблица 1 – Сравнение аналогов

Морской Бой на flash

BattleShips

Sea Battle 1.03

Различные варианты игры - - +
Игра по сети - - +
Игра на мобильном телефоне +- + +
Разработана специально для android - + +

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

1.3 Моделирование требований

Диаграмма IDEF0 построена для описания поведения приложения во время игры и определения последовательности действий во время игры. Данная последовательность определена правилами, описанными в п. 1.1.

Входными данными являются события созданные пользователем (такие как выбор пункта меню, выбор клетки).

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

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

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

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

Блок «Начать бой» начинает игру с заданным набором кораблей.

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

«Просмотр статистики» осуществляет вызов функции отвечающей за выборку данных для текущего аккаунта.

1.4 Выбор модели жизненного цикла

Таблица 2 – Сравнение моделей ЖЦ

Вид модели

Качество данной

модели

Каскадная

+:Оптимальна, при максимальном выделении всех требований.

-: Результат в самом конце разработки.

Прототипированная

+Решение возникающих проблем на ранних стадиях.

-: Малая вероятность, что будет сразу готов прототип системы.

Инкрементная

+: Добавление функции с каждым инкрементом.

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

На основе раннее созданных компонентов

+: Снижает время разработки.

-: Искажаются требования.

Спиральная

+: Преимущества инкрементной и прототипированной модели.

-: Усложнённая структура разработки.

V образная

+: Обеспечивает максимальную надёжность.

-: Невозможно изменение требований.

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