Морской бой: Тетрадные баталии 1.1 (разработчик RadiusGames) 


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



ЗНАЕТЕ ЛИ ВЫ?

Морской бой: Тетрадные баталии 1.1 (разработчик RadiusGames)



СОДЕРЖАНИЕ

ВВЕДЕНИЕ.. 4

ТЕХНИЧЕСКОЕ ЗАДАНИЕ.. 5

1. АНАЛИТИЧЕСКИЙ РАЗДЕЛ.. 6

1.1. Обзор и анализ существующих программных решений. 6

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

2. КОНСТРУКТОРСКИЙ РАЗДЕЛ.. 9

2.1. Выбор языка и среды программирования. 9

2.2. Функциональная схема работы программы.. 10

2.3. Организация данных и проектирование интерфейсов обмена данными в программной системе. 11

2.4. Анализ существующих методов и алгоритмов. 12

2.5. Выбор графического и пользовательского интерфейса. 14

3. ТЕХНОЛОГИЧЕСКИЙ РАЗДЕЛ.. 16

3.1. Определение структуры и состава программной системы.. 16

3.2. Разработка алгоритмов отдельных подзадач. 17

3.3. Руководство пользователя. 22

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

4. ЭКСПЕРИМЕНТАЛЬНЫЙ РАЗДЕЛ.. 29

4.1. Виды контроля качества разрабатываемого ПО.. 29

4.2. Методика проведения и результаты тестирования. 30

4.3. Методы и способы устранения ошибок. 31

4.4. Отладка выявленных ошибок, обнаруженных при тестировании 32

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

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

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

Приложение 1. Листинг программы.. 36

Приложение 2. Графический интерфейс программы.. 62

ВВЕДЕНИЕ

Целью данного курсового проекта является создание игровой программы «Морской бой», которая и будет являться объектом исследования.

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

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

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

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

ТЕХНИЧЕСКОЕ ЗАДАНИЕ

на курсовой проект по дисциплине «Языки программирования»

Студент Яськов К. Ю. Группа 11-БАС-1

Тема Разработка игры «Морской бой»

Общая формулировка задания

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

Требования к графическому и пользовательскому интерфейсам:

· интуитивно понятный графический интерфейс;

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

· должно присутствовать отображение кораблей в соответствии с их состоянием;

· в программе должны использоваться визуальные элементы управления (графическое меню, кнопки).

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

· должна быть реализована автоматическая расстановка кораблей;

· должно быть реализовано соблюдение классических правил игры «Морской бой»;

· должна присутствовать возможность выстрела с помощью мыши;

· необходимо реализовать вывод сообщения информирующего о победе или проигрыше.

Руководитель Леонов Ю.А.

1. АНАЛИТИЧЕСКИЙ РАЗДЕЛ

1.1. Обзор и анализ существующих программных решений

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

Морской бой: Тетрадные баталии 1.1 (разработчик RadiusGames)

Источник в интернете: http://www.radiusgames.ru/SeaBattle.html

После проведения анализа данной игры были выявлены следующие достоинства и недостатки. Интерфейс игры представлен на рис. 1.

Достоинства:

· красочный интерфейс;

· интуитивно понятное управление;

· возможность игры по сети;

· анимация выстрела.

Недостатки:

· перегруженность интерфейса;

· низкий уровень интеллекта компьютера.

Рис. 1. Интерфейс игры «Морской бой: Тетрадные баталии 1.1»

Морской бой: Seawar (разработчик Александр Мамзиков)

Источник в интернете: http://www.softportal.com/software-3455-morskoj-boj.html

После проведения анализа данной игры были выявлены следующие достоинства и недостатки. Интерфейс игры представлен на рис. 2.

Достоинства:

· минимальные системные требования;

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

· возможность настройки уровня интеллекта компьютера;

· Звуковые эффекты;

· Анимационные эффекты.

Недостатки:

· управление только с клавиатуры;

· интерфейс малопонятен пользователю.

Рис. 2. Интерфейс игры «Морской бой: Seawar»

 

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

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

1) соблюдение классических правил игры «Морской бой»;

2) игра должна иметь простой, но в то же время понятный и наглядный интерфейс, который не должен перегружать ресурсы компьютера;

3) игра должна иметь возможность использования ее одним пользователем, то есть иметь элементы искусственного интеллекта;

4) пользователь должен иметь выбор между ручным и автоматическим вариантами расстановки кораблей на поле боя;

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

6) должна присутствовать возможность выхода или приостановки игры в любое время;

7) игра не должна занимать большой объем памяти и не должна требовать установки на жесткий диск компьютера;

8) должна существовать возможность выстрела по кораблям противника с помощью мыши;

9) работоспособность приложения в среде Windows;

10) должна присутствовать кнопка «О программе».

 

2. Конструкторский раздел

2.1. Выбор языка и среды программирования

Учитывая особенности поставленной задачи, из множества сред программирования, таких как Visual C++, Microsoft Visual Studio, Visual Basic, Borland Delphi 7, была выбрана среда Borland Delphi 7, в которой существует использование объектов в области интерфейса, что облегчит работу программиста, то есть Delphi позволяет визуально создавать интерфейс программы, используя большую библиотеку стандартных классов (компонент). Основным достоинством данной среды, является то, что основные функции по взаимодействию с операционной системой она берет на себя, а обработку сообщений операционной системы она заменяет обработкой событий, что существенно упрощает разработку программного продукта. Тем более для реализации такой программы, не требующей глубокой интеграции с системой, не целесообразно использовать среду программирования Visual C++ (как более мощную).

Кроме того, Delphi обеспечивает поддержку большого числа операционных систем: Microsoft Windows 95, 98, NT4, 2000, XP, VISTA, 7. А именно эти системы пользуются популярностью среди неквалифицированных пользователей.

По сравнению с конкурентами она имеет некоторые преимущества.

Delphi - это комбинация нескольких важнейших технологий:

· высокопроизводительный компилятор в машинный код;

· объектно-ориентированная модель компонент;

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

· масштабируемые средства для построения баз данных.

 

2.2. Функциональная схема работы программы

При создании алгоритма игры "Морской бой" на начальном этапе была разработана его блок-схема. В ней описана последовательность работы алгоритма игры (рис. 3):

Рис. 3. Представление алгоритма работы программы

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

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

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

2.3. Организация данных и проектирование интерфейсов обмена данными в программной системе

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

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

Выводимые данные в программе представлены в виде графического отображения окна игры (рис. 4):

Рис. 4. Окно программы

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

1) нажатие клавиш мыши;

2) работа пользователя с кнопками на форме.

2.4. Анализ существующих методов и алгоритмов

Рис. 5. Неоптимальный интерфейс программы

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

Рис. 6. Оптимальный интерфейс программы

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

3. Технологический раздел

3.1. Определение структуры и состава программной системы

Данная программа состоит из:

· mainprogram – главный модуль программы, отвечает за процесс игры;

· about – модуль окна «О программе».

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

Таблица 1

Используемые компоненты

Label Метка Размещает в форме объекты, предназначенные для создания текстовой информации, надписей и примечаний.
Edit Текстовое поле Размещает в форме текстовое поле, предназначенное для ввода текстовой информации, чисел и дат.
Button Кнопка управления Размещает в форме кнопки управления для инициации действий, выполнения команд, запуска программ.
Panel Панель Используется в декоративных целях.
Image Изображение Отображает графическое изображение на форме

 

В данной программе используются следующие процедуры.

Процедура FormCreate

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

Процедура nash

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

Процедура shoot

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

Процедура Button5Click

Выполняется в том случае, если выбрана автоматическая расстановка кораблей игрока.

3.2. Разработка алгоритмов отдельных подзадач

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

Процедура FormCreate

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

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

Расстановка кораблей противника происходит от четырехклеточного к одноклеточному. К тому же расстановка кораблей происходит в цикле.

Координаты четырехпалубного корабль выбираются случайно (переменная m и переменная n) лишь с условием того чтобы он не выходил за границы поля при этом выбирается случайное горизонтальное или вертикальное положение (переменная z). При этом корабль помечается цифрами «2» в матрице.

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

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

Представим основной алгоритм работы процедуры в виде блок-схемы (рис. 7):

Рис. 7. Представление алгоритма процедуры FormCreate

Процедура nash

Процедура ручной расстановки кораблей.

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

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

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

Представим основной алгоритм работы процедуры в виде блок-схемы (рис. 8):

Рис. 8. Представление алгоритма процедуры nash

Процедура shoot

После того как все корабли расставлены начинается обмен выстрелами.

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

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

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

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

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

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

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

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

Представим основной алгоритм работы процедуры в виде блок-схемы (рис. 9):

Рис. 9. Представление алгоритма процедуры shoot

Процедура Button5Click

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

3.3. Руководство пользователя

Запускаем приложение Морской бой.exe (рис.10):

Рис. 10. Морской бой.exe

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

 

Рис. 11. Пример ручной расстановки кораблей

После того, как все корабли в ручном режиме расставлены, появляется поле боя компьютера и можно начинать игру (рис. 12):

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

Если же выбран вариант автоматической расстановки кораблей, то сразу появляется поле боя игрока с уже расставленными кораблями, а также поле боя компьютера, и можно начинать игру (рис. 13):

Рис. 13. Подготовленные поля боя в случае с авто-вариантом расстановки

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

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

Рис. 14. Процесс игры

Также у игрока имеется возможность выбора: выделять убитые корабли (рис. 15) или не выделять (рис. 16):

Рис. 15. Выделение убитых кораблей

Рис. 16. Без выделения убитых кораблей

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

Рис. 17. Вывод сообщения о победе

Если же компьютер потопил все корабли игрока, то выводится сообщение о проигрыше (рис. 18):

 

Рис. 18. Вывод сообщения о проигрыше

После этого у игрока имеется возможность начать новую игру или выйти из нее (рис. 19):

Рис. 19. Главное окно игры после проигрыша или победы

Так же можно посмотреть сведения о программном продукте. Для этого необходимо нажать клавишу «О программе» (рис. 20):

Рис. 20. Окно «О программе»

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

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

Программно-аппаратные требования

Аппаратные требования:

Необходимый объем ОЗУ 64 Мб и графическим адаптером, поддерживающим режим 800х600 и выше, глубина цвета 32 бит. Необходимое место на жестком диске 1500 Кб. Клавиатура, мышь.

Программные требования:

Операционная система семейства Windows: 2000/XP/Vista/7.

 

 

4. Экспериментальный раздел

4.1. Виды контроля качества разрабатываемого ПО

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

Основные принципы организации тестирования:

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

2) следует по возможности избегать тестирования программы ее автором, т.к. кроме уже указанной объективной сложности тестирования для программистов здесь присутствует и тот фактор, что обнаружение недостатков в своей деятельности противоречит человеческой психологии (однако отладка программы эффективнее всего выполняется именно автором программы);

3) по тем же соображениям организация - разработчик программного обеспечения не должна “единолично ” его тестировать (должны существовать организации, специализирующиеся на тестировании программных средств);

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

5) необходимо тщательно подбирать тест не только для правильных (предусмотренных) входных данных, но и для неправильных (непредусмотренных);

6) следует сохранять использованные тесты (для повышения эффективности повторного тестирования программы после ее модификации или установки у заказчика);

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

8) следует учитывать так называемый “принцип скопления ошибок”: вероятность наличия не обнаруженных ошибок в некоторой части программы прямо пропорциональна числу ошибок, уже обнаруженных в этой части;

9) следует всегда помнить, что тестирование – творческий процесс, а не относиться к нему как к рутинному занятию.

4.2. Методика проведения и результаты тестирования

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

· необходимо тщательно подбирать тест не только для правильных (предусмотренных) входных данных, но и для неправильных (непредусмотренных);

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

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

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

Тестирование выявило ряд ошибок в алгоритме, синтаксисе кода программы и ее интерфейсе.

4.3. Методы и способы устранения ошибок

Отладка – это комплексный процесс по выявлению и исправлению дефектов в программном обеспечении. Сами же дефекты, обычно, обнаруживается в процессе тестирования ПО.

Отладка состоит из следующих этапов:

1) воспроизведение дефекта (любым из доступных способов);

2) анализ дефекта (поиск причины возникновения дефекта);

3) дизайн исправления дефекта;

4) кодирование исправления дефекта;

5) валидация исправления;

6) интеграция исправления в кодовую базу или целевую систему;

7) дополнительные валидации после интеграции.

Отладка – это рекурсивный процесс. На любом этапе отладки могут возникнуть новые дефекты, которые придётся отлаживать. Например, какая-то часть исправления в коде работает не так как ожидается и соответственно придётся отлаживать эту часть в изоляции и снова основное время уходит на пункты 1 и 2 и т.д.

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

Некоторые методы отладки ПО используемые на данный момент в индустрии:

· запуск программы из под отладчика;

· анализ поведения системы;

· unit тестирование;

· анализ кода без исполнения программы;

· выполнения программы (или её части) в другой среде;

· отладка трансляцией кода.

4.4. Отладка выявленных ошибок, обнаруженных при тестировании

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

· unit тестирование;

· анализ кода без исполнения программы;

· запуск программы из под отладчика.

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

Также были предусмотрены некоторые исключительные ситуации.

Рис. 1. Главное окно программы

Рис. 2. Окно начала игры

Рис. 3. Процесс игры

Рис. 4. Сообщение о победе

Рис. 4. Сообщение о поражении

Рис. 5. Окно «О программе»

 

СОДЕРЖАНИЕ

ВВЕДЕНИЕ.. 4

ТЕХНИЧЕСКОЕ ЗАДАНИЕ.. 5

1. АНАЛИТИЧЕСКИЙ РАЗДЕЛ.. 6

1.1. Обзор и анализ существующих программных решений. 6

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

2. КОНСТРУКТОРСКИЙ РАЗДЕЛ.. 9

2.1. Выбор языка и среды программирования. 9

2.2. Функциональная схема работы программы.. 10

2.3. Организация данных и проектирование интерфейсов обмена данными в программной системе. 11

2.4. Анализ существующих методов и алгоритмов. 12

2.5. Выбор графического и пользовательского интерфейса. 14

3. ТЕХНОЛОГИЧЕСКИЙ РАЗДЕЛ.. 16

3.1. Определение структуры и состава программной системы.. 16

3.2. Разработка алгоритмов отдельных подзадач. 17

3.3. Руководство пользователя. 22

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

4. ЭКСПЕРИМЕНТАЛЬНЫЙ РАЗДЕЛ.. 29

4.1. Виды контроля качества разрабатываемого ПО.. 29

4.2. Методика проведения и результаты тестирования. 30

4.3. Методы и способы устранения ошибок. 31

4.4. Отладка выявленных ошибок, обнаруженных при тестировании 32

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

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

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

Приложение 1. Листинг программы.. 36

Приложение 2. Графический интерфейс программы.. 62

ВВЕДЕНИЕ

Целью данного курсового проекта является создание игровой программы «Морской бой», которая и будет являться объектом исследования.

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

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

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

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

ТЕХНИЧЕСКОЕ ЗАДАНИЕ

на курсовой проект по дисциплине «Языки программирования»

Студент Яськов К. Ю. Группа 11-БАС-1

Тема Разработка игры «Морской бой»

Общая формулировка задания

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

Требования к графическому и пользовательскому интерфейсам:

· интуитивно понятный графический интерфейс;

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

· должно присутствовать отображение кораблей в соответствии с их состоянием;

· в программе должны использоваться визуальные элементы управления (графическое меню, кнопки).

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

· должна быть реализована автоматическая расстановка кораблей;

· должно быть реализовано соблюдение классических правил игры «Морской бой»;

· должна присутствовать возможность выстрела с помощью мыши;

· необходимо реализовать вывод сообщения информирующего о победе или проигрыше.

Руководитель Леонов Ю.А.

1. АНАЛИТИЧЕСКИЙ РАЗДЕЛ

1.1. Обзор и анализ существующих программных решений

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

Морской бой: Тетрадные баталии 1.1 (разработчик RadiusGames)

Источник в интернете: http://www.radiusgames.ru/SeaBattle.html

После проведения анализа данной игры были выявлены следующие достоинства и недостатки. Интерфейс игры представлен на рис. 1.

Достоинства:

· красочный интерфейс;

· интуитивно понятное управление;

· возможность игры по сети;

· анимация выстрела.

Недостатки:

· перегруженность интерфейса;

· низкий уровень интеллекта компьютера.

Рис. 1. Интерфейс игры «Морской бой: Тетрадные баталии 1.1»

Морской бой: Seawar (разработчик Александр Мамзиков)

Источник в интернете: http://www.softportal.com/software-3455-morskoj-boj.html

После проведения анализа данной игры были выявлены следующие достоинства и недостатки. Интерфейс игры представлен на рис. 2.

Достоинства:

· минимальные системные требования;

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

· возможность настройки уровня интеллекта компьютера;

· Звуковые эффекты;

· Анимационные эффекты.

Недостатки:

· управление только с клавиатуры;

· интерфейс малопонятен пользователю.

Рис. 2. Интерфейс игры «Морской бой: Seawar»

 

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

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

1) соблюдение классических правил игры «Морской бой»;

2) игра должна иметь простой, но в то же время понятный и наглядный интерфейс, который не должен перегружать ресурсы компьютера;

3) игра должна иметь возможность использования ее одним пользователем, то есть иметь элементы искусственного интеллекта;

4) пользователь должен иметь выбор между ручным и автоматическим вариантами расстановки кораблей на поле боя;

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

6) должна присутствовать возможность выхода или приостановки игры в любое время;

7) игра не должна занимать большой объем памяти и не должна требовать установки на жесткий диск компьютера;

8) должна существовать возможность выстрела по кораблям противника с помощью мыши;

9) работоспособность приложения в среде Windows;

10) должна присутствовать кнопка «О программе».

 

2. Конструкторский раздел

2.1. Выбор языка и среды программирования

Учитывая особенности поставленной задачи, из множества сред программирования, таких как Visual C++, Microsoft Visual Studio, Visual Basic, Borland Delphi 7, была выбрана среда Borland Delphi 7, в которой существует использование объектов в области интерфейса, что облегчит работу программиста, то есть Delphi позволяет визуально создавать интерфейс программы, используя большую библиотеку стандартных классов (компонент). Основным достоинством данной среды, является то, что основные функции по взаимодействию с операционной системой она берет на себя, а обработку сообщений операционной системы она заменяет обработкой событий, что существенно упрощает разработку программного продукта. Тем более для реализации такой программы, не требующей глубокой интеграции с системой, не целесообразно использовать среду программирования Visual C++ (как более мощную).

Кроме того, Delphi обеспечивает поддержку большого числа операционных систем: Microsoft Windows 95, 98, NT4, 2000, XP, VISTA, 7. А именно эти системы пользуются популярностью среди неквалифицированных пользователей.

По сравнению с конкурентами она имеет некоторые преимущества.

Delphi - это комбинация нескольких важнейших технологий:

· высокопроизводительный компилятор в машинный код;

· объектно-ориентированная модель компонент;

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

· масштабируемые средства для построения баз данных.

 

2.2. Функциональная схема работы программы

При создании алгоритма игры "Морской бой" на начальном этапе была разработана его блок-схема. В ней описана последовательность работы алгоритма игры (рис. 3):

Рис. 3. Представление алгоритма работы программы

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

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



Поделиться:


Последнее изменение этой страницы: 2016-04-19; просмотров: 1358; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

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