Разработка игры «Морской бой» с АИ

Автор: Пользователь скрыл имя, 21 Декабря 2011 в 18:20, курсовая работа

Описание работы

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

Содержание

Введение 4
1 Определение требований 5
1.1 Описание бизнес процесса 5
1.2 Обзор аналогов 6
1.3 Моделирование требований 8
1.4 Выбор модели жизненного цикла 9
1.5 Описание технического задания 9
2 Проектирование 10
2.1 Выбор модели системы 10
2.2 Проектирование структуры системы 11
2.3 Проектирование логики работы 11
2.4 Проектирование интерфейса 14
3 Разработка программного кода 15
4 Верификация и аттестация 16
4.1 Выбор методов верификации и аттестации 16
4.2 Инспектирование 16
4.3 Тестирование 17
5 Программная документация 18
5.1 Инструкция по установке 18
5.2 Инструкция пользователя 18
Заключение 19

Работа содержит 1 файл

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

— 983.00 Кб (Скачать)

           if((k1==1)&&(k2==2)&&(k3==3)) {

                 unshow(); // функция блокирования  оставшихся кнопок игрового поля

                 result="Победа!";

                 UpdateData(false);

           };

 

4 Верификация и аттестация

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

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

     Тестирование  включает в себя

  1. Тестовые данные
  2. Карта ошибок (какие проблемы в работе были выявлены)
  3. Тестирование проектной документации
  4. Тестирование готового программного кода

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

    • Тестирование белого (прозрачного) ящика – это доступ к исходному коду; определяется процент его покрытия (сколько кода проверено за один тест).
    • Функциональное тестирование – проверка, все ли функции, определенные в ТЗ, есть в программе.
    • Ручное тестирование заключается в ручном переборе всевозможных входных данных и в задействовании всех элементов управления программы тестером, а так же в документировании выполненных действий.
    • Модульное тестирование – процесс в программировании, позволяющий проверить на корректность отдельные модули исходного кода программы.
    • Альфа-тестирование подразумевает под собой тестирование «альфа-версии» программного продукта самими разработчиками.

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

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

  • Расстановка кораблей АИ: Communication Diagram – 5:расстановка кораблей
  • Расстановка кораблей АИ: Activity Diagram - расстановка кораблей
  • «Выстрел» АИ: Communication Diagram – 9:выстрел
  • «Выстрел» АИ: Activity Diagram – ход AI
  • «Предоставление» игрового пространства (2 квадратных поля): Communication Diagram- 2:создание пустого поля игрока
  • «Предоставление» игрового пространства (2 квадратных поля): Communication Diagram- 3:создание пустого поля компьютера
  • Возможность завершения игры в любой момент путем нажатия кнопки «Выход»: Activity Diagram - автопоражение
  • Ведение статистики игрового процесса: количество сыгранных «за раз» игр, кол-во побед, поражений: Communication Diagram – 11:результат партии

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

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

     Поскольку в игре Морской бой («SeaWar») входных данных всего два (нажатие на клавиши-поля компьютера и нажатие кнопки «Выход») – был сделан упор в тестирование «игровых комбинаций». В результате перебора более двадцати «тактик обстрела», сбоев в работе программы выявлено не было. Созданная игра удовлетворяет основным требованиям; остальные будут доработаны в следующих версиях программного продукта.

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

 

5 Программная документация

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

     Для корректной работы программы необходимо установить Microsoft Visual Studio 2008 года или старше со всеми соответствующими библиотеками. Запуск игры осуществляется с помощью .ехе файла. Для удобства, его можно переместить на рабочий стол или создать ярлык. Рекомендованная конфигурация компьютера: процессор 1Ггц и выше, ОЗУ 512Мб, ОС Windows XP/Vista/7.

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

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

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

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

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

 

Заключение

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

     1 Назначение разработки

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

     2 Цель и задачи

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

     3 Требования к разработке

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

       Расстановка кораблей АИ: в начале игры компьютер должен произвести расстановку «своих» кораблей на игровом поле – корабли расставляются от большего к меньшему (один 4х-палубный, два 3х-палубных, три 2х-палубных и четыре одно-палубных). Генерацией случайных чисел определяются координаты корабля и его расположение (горизонтальное/вертикальное). Если последним кораблям «не хватает» места – игровое поле генерируется заново. Данный механизм обеспечит уникальность и совершенность каждой игровой партии.

       «Выстрел» АИ: «чистый» выстрел (когда ранее не было попаданий) происходит на основе случайно-сгенерированных координат из числа «свободных». В случае промаха – последующий выстрел осуществляется таким же способом. Если же было попадание (в этом или предыдущем ходе), происходит оценка потенциально-оставшихся на поле кораблей с учетом «рельефа» карты (что позволит заведомо отсечь «неправильное» направление следующих выстрелов), после чего направление последующих выстрелов выбирается из оставшихся случайно и сохраняется в случае попадания либо до «затопления», либо до промаха.

     «Предоставление» игрового пространства (2 квадратных поля)

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

     Ведение статистики игрового процесса: количество сыгранных «за раз» игр, кол-во побед, поражений.

 

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

Таблица 3 -  Входные и выходные данные

    Функция Входные параметры Выходные параметры
    Расстановка кораблей АИ - Координаты и положение корабля; вызов функции пересоздания поля в случае «нехватки» места.
    «Выстрел» АИ Информация о предыдущем успешно выстреле АИ Координаты нового выстрела
    Статистика Сыгранные партии (последовательно) Формальная статистика (кол-во игр, % побед, % поражений)

 

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

 

 

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

     Система защищена паролем.

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

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

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

     К системе имеет  доступ ограниченное число людей, с  индивидуальным паролем.

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

     Данные требования к системе не предъявляются.

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

     Windows XP, Vista, 7.

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

     При разработке программного продукта будут использованы следующие программные комплексы:

     Microsoft Office 2003

     Microsoft Visual Studio 2010

     Visual Paradigm

     Ramus

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

     -

     4 Методы тестирования соответствия разработки предъявленным требованиям

     Тестирование будет произведено методами, описанными в п. 4.1 в течении двух недель с момента выхода рабочей версии программы.

 

Приложение 2 Программный код

     // SeaWarDlg.cpp : файл реализации

     void CSeaWarDlg::kshot() {           // функция выстрела АИ

           CString SW;

           switch (step) {

                 case 0:

                       SW="X";

                       pd1.SetWindowTextW((LPCTSTR)SW);

                       SW="*";

                       pg1.SetWindowTextW((LPCTSTR)SW);

                       pg2.SetWindowTextW((LPCTSTR)SW);

                       pd2.SetWindowTextW((LPCTSTR)SW);

                       SW="*";

                       pv3.SetWindowTextW((LPCTSTR)SW);

                       break;

                 case 1:

                       SW="*";

                       pb3.SetWindowTextW((LPCTSTR)SW);

                       break;

                 case 2:

                       SW="X";

                       pg4.SetWindowTextW((LPCTSTR)SW);

                       pg5.SetWindowTextW((LPCTSTR)SW);

                       SW="*";

                       pg3.SetWindowTextW((LPCTSTR)SW);

                       pd3.SetWindowTextW((LPCTSTR)SW);

                       pd4.SetWindowTextW((LPCTSTR)SW);

                       pd5.SetWindowTextW((LPCTSTR)SW);

                       pv4.SetWindowTextW((LPCTSTR)SW);

                       pv5.SetWindowTextW((LPCTSTR)SW);

                       break;

                 case 3:

                       SW="*";

                       pb5.SetWindowTextW((LPCTSTR)SW);

                       break;

                 case 4:

                       SW="*";

                       pb4.SetWindowTextW((LPCTSTR)SW);

                       break;

                 case 5:

                       SW="X";

                       pa2.SetWindowTextW((LPCTSTR)SW);

                       SW="*";

                       pa3.SetWindowTextW((LPCTSTR)SW);

                       break;

                 case 6:

                       SW="X";

                       pb2.SetWindowTextW((LPCTSTR)SW);

                       pv2.SetWindowTextW((LPCTSTR)SW);

                       SW="*";

                       pa1.SetWindowTextW((LPCTSTR)SW);

                       pb1.SetWindowTextW((LPCTSTR)SW);

                       pv1.SetWindowTextW((LPCTSTR)SW);

Информация о работе Разработка игры «Морской бой» с АИ