Учебная работа. Реферат: Логическая игра Морской бой

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (5 оценок, среднее: 4,80 из 5)
Загрузка...
Контрольные рефераты

Учебная работа. Реферат: Логическая игра Морской бой

Федеральное агентство по образованию

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

«Н А Ц И О Н А Л Ь Н Ы Й И С С Л Е Д О В А Т Е Л Ь С К И Й Т О М С К И Й П О Л И Т Е Х Н И Ч Е С К И Й У Н И В Е Р С И Т Е Т»

Факультет Автоматики и вычислительной техники

Кафедра Автоматики и компьютерных систем

Специальность «Информационные системы и технологии»

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

«Разработка программирования»

на тему

«Логическая игра «Морской бой»»

Выполнил

студент группы 8880 _________________ Погребной В.Ю.

Проверил

педагог кафедры АиКС _________________ Лунева Е.Е.

Томск 2010Содержание

Техническое задание. 3

Введение. 6

1.анализ предметной области. 7

1.1Функциональная спецификация. 7

1.2Диаграмма вариантов использования. 12

1.3Диаграмма классов. 13

1.4Диаграмма состояния. 14

1.5Диаграмма последовательности. 15

1.6Диаграмма компонент. 16

2.Управление юзера. 17

3.Управление программера. 21

4.Тестирование и отладка. 26

5.Заключение. 27

5.1Достоинства и недочеты программки.. 27

5.2Развитие программки.. 27

5.3Итоги работы.. 27

6.Перечень литературы.. 28

7.Приложение. 29

Текст программки (главные моменты)29





Техническое задание

1. Общие сведения

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

1.2 Разрабом программки является студент Томского Политехнического Института группы 8880 специальности «Информационные системы и технологии в бизнесе» Погребной Вадим Юрьевич.

1.3 Программный продукт создается на основании выданного задания от педагога кафедры АИКС Луневой Е.Е.

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

2.
Предназначение и цели сотворения системы

Основное предназначение логической игры «Морской бой» — развитие логического мышления и параллельное развлечение; в связи с возможной возможностью сохранения результатов игр, вероятен также соревновательный игровой процесс; построение стратегий. Целью данной работы является ознакомление и углубление в технологию объектно-ориентированного программирования, исследование среды зрительного программирования BorlandC++ Builder 2006.

3.
свойства объекта автоматизации

Объектом автоматизации служит Windowsприложение в виде нескольких окон (основного и вспомогательных), на которых размещаются клеточные поля, поверх которых нужно поместить изображения кораблей. Положение всякого объекта-корабля подлежит изменению, а при готовности игроков, эти положения сохраняются в памяти. нужно предугадать выполнение всех правил игры, сохранение результатов в файл, реализацию комфортного и понятного интерфейса. Данное приложение будет работать на индивидуальном компе, и сотворено в среде разработки BorlandC++ Builder 2006.

4.
Требования к системе

4.1 Требования к многофункциональным чертам.

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

— начало новейшей игры на поле, соответственном избранному режиму игры;

— перетаскивание кораблей и проверка на корректность их расположения;

— переход в режим боя при готовности всех участников игры;

— воплощение самого процесса боя с фиксацией окончания боя и победы 1-го из игроков;

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

4.2 Требования к составу и характеристикам технических средств:

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

4.3 Требования к информационной и программной сопоставимости:

Программное обеспечение обязано работать под управлением операционных систем семейства Windows. Среда разработкиBorlandC++ Builder 2006. Требований к защите инфы не предъявляются.

5.
Состав и содержание работ по созданию системы

5.1 Разработка обязана быть проведена в три стадии:

— разработка технического задания;

— создание рабочего проекта;

— внедрение.

5.2 На стадии разработки технического задания должен быть выполнен шаг разработки, согласования и утверждения реального технического задания, также:

— постановка задачки;

— определение и уточнение требований к техническим средствам;

— определение требований к программке;

— определение стадий, шагов и сроков разработки программки и документации на неё;

— согласование и утверждение технического задания.

5.3 На стадии рабочего проектирования должны быть выполнены перечисленные ниже этапы работ:

— разработка программки;

— разработка программной документации;

— тесты программки.

5.4 На стадии внедрения должен быть выполнен шаг разработки «подготовка и передача программки».

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

5.6 На шаге испытаний программки должны быть выполнены перечисленные ниже виды работ:

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

— проведение приемо-сдаточных испытаний;

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

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

6.
порядок контроля и приемки системы

Контроль выполнения осуществляется управляющим согласно срокам выполнения работ. Срок сдачи определяется в согласовании с учебным планом кафедры «Автоматики и компьютерных систем» ТПУ. Также будет осуществляться отдельная приемка начального кода и скомпилированной программки.

7.
Требования к документированию

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

7.2 В состав сопровождающей документации должны заходить:

— техническое задание;

— управление юзера;

программка и методики испытаний.




Введение

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

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




1. анализ предметной области



1.1 Многофункциональная спецификация

1.1.1 Общие сведения

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

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

1.1.2 Блок-схема программки «Логическая игра «Морской бой»»

Чтоб представить, как работает данная программка, взглянем на блок-схему программки (рис.1). Данная блок-схема не полная, но верно указывает, как мы собираемся употреблять данное приложение.


Рис. 1.Блок-схема программки «Логическая игра «Морской бой»»





1.1.3 Спецификации для всякого экрана

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

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

1.1.4 Основная форма игры

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

Исходный вид окна изображен на рисунке 2.

Рис. 2. основное окно приложения «Морской бой», режим игры с компом

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

Рис. 3. основное окно приложения «Морской бой», режим игры с человеком

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

1.1.5 Форма данных о программке

Содержит данные о создателе, версию и заглавие программки.

Форма имеет вид, изображенный на рисунке 4.

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

1.1.6 Форма результатов игр

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

Форма имеет вид, изображенный на рисунке 5.

Рис. 5. Результаты игр

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


1.2 Диаграмма вариантов использования




1.3 Диаграмма классов




1.4 Диаграмма состояния


1.5 Диаграмма последовательности



1.6 Диаграмма компонент


2. Управление юзера

Для пуска нужно открыть файл программки с расширением .exe. При запуске программки покажется окно с 2-мя игровыми полями, начальный режим игры — “Игра против компа”. Для того, чтоб переключиться на режим “Игра против человека”, нужно зайти в основное меню программки и избрать соответственный пункт. В том же меню находятся все главные функции игры:

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

b. Выбор противника – человек либо комп. Пункт недоступен в режиме боя.

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

d. Результаты – происходит загрузка результатов прошедших игр из файла и игроку показываются результаты в особом окне (рис. 5). Пункт доступен в хоть какой момент времени.

e. Выход – функция окончания работы приложения.

f. Помощь – предоставляются данные о программке и о создателе приложения.

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

Также на форме приложения сходу можно увидеть поля для ввода имен игроков, в режиме игры с компом можно изменять лишь 1-ое поле ввода, при игре с человеком меняются оба поля. В той же области окна находятся поля, созданные для ведения статистики боя, они будут изменяться в течение боя. Заметим, что изменение имен станет неосуществимым при переключении в режим боя. Мерцающая надпись показывает на то, игра находится в режиме расстановки кораблей, сама надпись является ссылкой на пункт меню – начать бой. Если игра находится в режиме игры с человеком, то метка начнет мелькать лишь опосля готовности обоих игроков начать бой. Для доказательства готовности нужно кликнуть на подобающую надпись. Но для начала необходимо будет расставить корабли, поначалу расставляет 1-ый игрок (2-ой должен будет отвернуться), потом он надавливает на «Готово» и аналогичным образом 2-ой игрок проводит те же операции. Лишь опосля этого можно будет начать бой, на что укажет мерцающий текст. При игре с компом все намного проще, необходимо просто расставить корабли и можно приступить к бою.

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

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

Рис. 6. Функции приложения до начала боя

Опосля того, как вы перейдете в режим боя, изображение кораблей пропадет, их положение запомнит система. сейчас вы сможете вести бой нажатием левой клавиши мыши по избранной клеточке поля боя. Выстрелы проводятся по очереди до момента, пока не будут убиты корабли 1-го из врагов. При попадании по кораблю факт попадания будет показан крестом и соответствующим звуком, при убийстве корабля также прозвучит звук и в тоже время все поля вокруг корабля, по которым еще не проводились выстрелы, будут отмечены особым кругом. Тот же круг будет изображен и в случае промаха 1-го из игроков, в этом случае ход перейдет другому игроку. Чтоб осознать, кто на данный момент должен стрелять, необходимо поглядеть на поле, в каком написано имя игрока, оно обязано пылать красноватым цветом. комп производит выстрелы сходу же опосля того, как вы промахнулись, его выстрелы выполняются с некой паузой для того, чтоб вы успели оценить свои утраты и насладиться звуками взрывов кораблей. Для зрительного ознакомления поглядите на набросок 7. Также необходимо отметить, что во время выстрелов, как игроков, так и компа, окно приложения будет находиться поверх всех окон, а меню программки будет труднодоступно. Это неудобство нужно для правильной работы приложения. Чтоб не нарушать ход игры и не содействовать появлению заморочек с графическим изображением, пытайтесь не перекрывать приложение иными окнами во время выстрелов.

Рис. 7. Режим боя

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

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

Рис. 8. Победа 1-го из игроков

Заметим, что в этом случае корабли нереально перетащить, они показаны лишь для визуализации. Надпись начинает вновь мелькать, но в данном случае она ссылается на функцию меню «Новенькая игра».




3. Управление программера

программка состоит из 4 модулей:

1. «TFlashingLabel.cpp», в каком содержится класс «TFlashingLabel», потомок класса «TLabel», носит вспомогательную роль для мигания текста.

Содержит последующие переменные:

bool FFlashEnabled; //Включение мигания

int FFlashRate; //Скорость мигания

TTimer *Timer; //Таймер

Атакжеследующиефункции:

void SetFlashEnabled (bool AFlashEnabled);

Включение мигания, параметр регулирует его включение

voidSetFlashRate (intAFlashRate);

установление скорости; параметр содержит число, соответственное скорости мигания

void OnTimer (TObject *Sender);

Событиетаймера.

2. «AboutProgFrm.cpp», в нем содержится последующий класс «TAboutProg», также форма, на которой размещена информация о программке.

Содержитфункцию:

void OKClick(TObject *Sender);

Создана для исключения из области видимости формы данного модуля.

3. «ResultsFrm.cpp» состоит из класса «TResultsForm» и формы для размещения текстовой инфы в метках Label, загружаемой из файла.

Содержитследующиефункции:

void __fastcall OKClick(TObject *Sender);

Создана для исключения из области видимости формы данного модуля.

void LoadRes ();

Функция загружает данные из файла «SeaButResults.txt» и располагает их на форме.

4. «SeaButFrm.cpp» — основной модуль приложения, средством которого осуществляются все главные функции игры. В том числе визуализация на форме данного модуля.

Содержит последующие переменные (все переменные в разделе private):

TDrawGrid **Ships1; //Корабли на 1-ом поле

TDrawGrid **Ships2; //Корабли на 2-ом поле

int **field1; //Массив 1-го поля

int **field2; //Массив 2-го поля

intlinex; //Координата x графической полосы

intliney; //Координата y графической полосы

ShootCpu; //Переменная для хранения инфы стрельбы компа, является переменной типа Shoot, определенного последующей структурой:

struct Shoot //структура для хранения данных выстрелов компа

{

int Choice; //Выбор

bool Target; //Попадание

bool TarDir; //Верно ли выбрана горизонталь

bool TarDirect; //Верно ли выбрано направление

bool TarDestr; //Корабльубит

int Direction; //Направление

int RowNum[100]; //Неопознанные точки поля

int RowDir[4]; //Неопознанные направления

};

intChoice; //Выбор при попадании компа

intShips1Destr[10]; //Подбитые корабли 1-го поля

intShips2Destr[10]; //Подбитые корабли 2-го поля

intCount1Destr; //Кол-во подбитых кораблей 1-го поля

intCount2Destr; //Кол-во подбитых кораблей 2-го поля

Graphics::TBitmap *Bitmap1; //Для хранения изображения канвы

Graphics::TBitmap *Bitmap2;

TFlashingLabel *FIGHT; //Динамическая мерцающая метка

Также содержит последующие функции:

1. Связанные с формой приложения и являющиеся способами компонент

void __fastcall ExitClick(TObject *Sender);

Выходизприложения.

void __fastcall GridField1DragOver(TObject *Sender, TObject *Source, int X,

int Y, TDragState State, bool &Accept);

Перетаскиваниеобъектанадполем.

void __fastcall ShipsDragOver(TObject *Sender, TObject *Source, int X,

int Y, TDragState State, bool &Accept);

Функция для обеспечения способности перетаскивания корабля.

void __fastcall ShipsMouseDown(TObject *Sender, TMouseButton Button,

TShiftState Shift, int X, int Y);

Нужна для поворота корабля на 90 градусов.

void __fastcall AboutClick(TObject *Sender);

Вызовокна «опрограмме».

void __fastcall CompClick(TObject *Sender);

Переход в режим игры с компом.

void __fastcall HumanClick(TObject *Sender);

Счеловеком.

void __fastcall FightClick(TObject *Sender);

Начатьбой.

void __fastcall NewGameClick(TObject *Sender);

Новаяигра.

void __fastcall Ready1Click(TObject *Sender);

Готовность 1-гоигрока.

void __fastcall Ready2Click(TObject *Sender);

Готовность 2-гоигрока.

void __fastcall GridField1MouseDown(TObject *Sender, TMouseButton Button,

TShiftState Shift, int X, int Y);

Выстрел.

void __fastcall Timer1Timer(TObject *Sender);

Работа таймера 1, нужен для прорисовки линий и стрельбы компа.

void __fastcall Timer2Timer(TObject *Sender);

Работа таймера 1, нужен для замедления выстрелов компа.

void __fastcall Timer3Timer(TObject *Sender);

Работа таймера 1, нужен для показа победы игрока.

void __fastcall FormDestroy(TObject *Sender);

При ликвидировании формы, чистка памяти.

void __fastcall FormPaint(TObject *Sender);

Прорисовка формы, в случае перекрывания иными окнами.

void __fastcall ResultsClick(TObject *Sender);

Показатьрезультаты.

void __fastcall FormDragOver(TObject *Sender, TObject *Source, int X, int Y,

TDragState State, bool &Accept);

Для запрета перемещения кораблей вне поля.

2. Сделанные программером (все в разделе private)

void SaveRes (int);

Сохранение результатов игры в файл, параметр описывает фаворита.

void SaveBM (int);

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

void DelBM (int);

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

void SetWindow (bool);

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

void SeaDraw (int, int, int, bool);

Рисование на канве, номер которой указан первым параметром. Ее координаты указываются последующими 2-мя параметрами типа int, неверное

void NullCpu ();

ОбнулениеCpu.

void NewShips (int);

Создание объектов – кораблей, задание им нужных параметров. Объекты размещаются на панели под номером, обозначенным параметром.

voidNewfield (int);

Создание динамического массива для поля боя игрока под номером, обозначенным параметром.

voidDelShips (int);

Удаление кораблей на панели под номером параметра типа int.

void Delfield (int);

Удаление массивов.

bool CheckShips (int);

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

void CheckDestr ();

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

void CreateShips ();

Случайная расстановка кораблей компом.

void CompShot ();

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


4. Тестирование и отладка

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

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

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

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

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


5. Заключение



5.1 Плюсы и недочеты программки

В любом программном продукте есть свои плюсы и недочеты. Разглядим плюсы и недочеты «Логической игры «Морской бой»».

Плюсы:

· Удачный и обычной интерфейс;

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

· Малая загруженность оперативки;

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

· Богатое графическое оформление игры.

Недочеты:

· Отсутствие справки к программке;

· Достаточно простой ум компа;

· Отсутствие доп функций игры, увеличивающих Энтузиазм к ней;

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




5.2 Развитие программки

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


5.3 Итоги работы

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




6. Перечень литературы

1. Страуструп Б. «Язык программирования С++.» – М: Двучлен, 1999. — 990с.

2. Уолнем К. «Объектно-ориентированное программирование на языке BORLANDC++» — Мн.: ООО «Попурри», 1997. – 640 с.:ил.

3. «Программирование в C++ Builder 6» [электрический ресурс], формат pdf, 1150 с.

4. «BorlandС++ Builder. Освой без помощи других» [электрический ресурс], формат pdf, 705 с.



7. Приложение




текст программки
(главные моменты)

ResultsFrm.cpp

//загрузка результатов

void TResultsForm::LoadRes ()

{

ifstream infile («SeaButResults.txt»);

if (!infile) return;

//Обнуление всех меток

Name1->Caption = ‘