Написание компьютерной игры Сбей самолет

2

ОГЛАВЛЕНИЕ



РАЗРАБОТКА ЭСКИЗНОГО И ТЕХНИЧЕСКОГО ПРОЕКТОВ 

ПРОГРАММЫ

1.Введение

2. Назначение и область применения

3.Технические характеристики

	3.1 Постановка задачи 

	3.2. Описание алгоритма 

	3.3. Организация входных и выходных данных

	3.4. Выбор состава технических и программных средств 

	РАЗРАБОТКА РАБОЧЕГО ПРОЕКТА

1. Разработка программы

2. Спецификация программы 

	3. Текст программы

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

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

4.2. Функциональное назначение

4.3. Описание логической структуры 

4.4. Используемые технические средства

4.5. Вызов и загрузка

4.6. Входные данные

4.7. Выходные данные

5. Тестирование программы

	ВНЕДРЕНИЕ

	1. Условия выполнения программы 

	2. Выполнение программы 

	3. Сообщение оператору

	ЗАКЛЮЧЕНИЕ

	ГЛОССАРИЙ 

	ЛИТЕРАТУРА

ПРИЛОЖЕНИЯ 




РАЗРАБОТКА ЭСКИЗНОГО И ТЕХНИЧЕСКОГО ПРОЕКТОВ 

ПРОГРАММЫ



1 Введение



Задание на курсовую работу по дисциплине 

«Алгоритмические языки и программирование»

Студент группы ОИн-609 

Минкин Владимир Валерьевич

Направление: «Информатика и ВТ», № контракта 09400060602052 

Тема: Разработка приложения для Windows, представляющего собой компьютерную игру «Сбей самолет».



Условие задачи:

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



Задание выдано: 10 сентябрь 2007 ___________________________. 

	

	
2 Назначение и область применения



В данном задании необходимо разработать развлекательную программу, представляющую собой игру. Область применения: досуг программиста. Поскольку ставится задача разработать приложение для Windows, то использоваться программа может только под управлением Windows 9х - Vista.

	

	
3 Технические характеристики

	

	3.1 Постановка задачи



Программа «Сбей самолет» представляет собой игру, цель которой – уничтожить самолеты противника. В начале игры в окне программы отображается несколько объектов: летящие самолеты и пусковая установка (см. Приложение 1). Игрок, нажав пробел, может запустить ракету, которая, если момент запуска выбран правильно, собьет самолет (см. Приложение 2). Так же с помощью клавиш перемещения курсора игрок может сместить пусковую установку влево или вправо. 

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

	

	3.2 Описание алгоритма

	

	В программе решается одна независимая подзадача: Мультипликация.

	Задача «Мультипликация» решается в три этапа: 1) вывод изображения на поверхности фона; 2) стирание изображения, восстановление фона; 3) изменение координат изображения на несколько точек, в зависимости от выводимого объекта.

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

	




Вывести на фоновый рисунок изображение объекта от точки Х

Стереть объект, восстановить фон 

Х := Х + 2

Рис.1. Схема алгоритма мультипликации















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

Схема алгоритма программы представлена на рис.2.




Да

Нет

Нет

Да



Начало

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

Пустить ракету с координатами Х1 и Y1;

N := N +1.

Х = Х1 и Y = Y1

Cтереть самолет и ракету; 

M := M+1;

M > 15

Конец

 Рис.2. Схема алгоритма программы



N > 20

Да

	

	3.3 Организация входных и выходных данных

	

	Приложение требует несколько файлов (графическое отображение фона, самолетов, пушки и ракеты), это графические файлы в формате BMP. Эти файлы прямого доступа.

	back: TBitmap; // фон

	plane, plane2: TBitmap; // Самолеты

	rocket: TBitmap;// Пушка

	bomb: TBitmap; // Ракета

	

	3.4 Выбор состава технических и программных средств

	

	Для реализации данной программы был выбран язык программирования высокого уровня Turbo Delphi Explorer. Среда данного языка наиболее удобна для реализации и разработки программ для Windows.

	Технические характеристики компьютера: 

	Pentium III и выше с тактовой частотой 1, 4 ГГц; 

	Объем оперативной памяти не менее 512 Мб;

	Необходимое пространство на жестком диске 600 Мб.

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

	

	
РАЗРАБОТКА РАБОЧЕГО ПРОЕКТА

	

	1. Разработка программы

	

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

	Окно form 1:

	

	

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



	

	Компонент Form1.

	Свойства:

	Caption - Сбей самолет;

	BorderStyle - bsSingle;

	1 - Компонент Timer1.

	свойства:

	interval - 25;

	2 - Компонент ProgressBar1.

	свойства:

	max – 20;

	position – 20;

	step - -1;

	smooth - false;

	3 - Компонент StatusBar1.

	свойства:

	panels: TstatusPanels (Panel [0]; Panel [1]);

	4 - Компонент ProgressBar2.

	свойства:

	max - 16;

	position - 0;

	step - 1;

	smooth – false;

	5 - компонент Panel1.

	свойства:

	Align – alBottom;

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

	Загрузку битового образа из файла обеспечивает метод LoadFromFile, которому в качестве параметра передается имя bmp-файла. 

	Отображение битового образа обеспечивает метод Draw объекта Canvas. В качестве параметров метода указывают координаты точки, от которой надо вывести битовый образ, и сам битовый образ. Например, инструкция

	Form1.Canvas.Draw (10, 20, bm);

	выводит на поверхность формы битовый образ bm. Если свойству Transparent битового образа присвоить значение True, то фрагменты битового образа, цвет которых совпадает с цветом его левой нижней точки, не будут выведены. Таким образом получается эффект прозрачного фона.

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

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

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

	Основную работу выполняет процедура обработки события Timer, которая рисует самолет, пусковую установку и снаряд. Сначала она сравнивает координаты самолета и снаряда. Если координаты самолета совпадают с координатами снаряда, процедура стирает самолет, увеличивает счетчик попаданий и завершает работу. Если снаряд не долетел до самолета, процедура перерисовывает самолет на новом месте. Если ракета запущена, то процедура рисует ее. Далее процедура проверяет, надо ли перерисовать на новом месте пусковую установку. Если игрок удерживает клавишу перемещения курсора, то процедура перерисовывает пусковую установку относительно ее текущего положения. Запуск ракеты обеспечивает процедура обработки события KeyPress. Она, если нажат пробел, и если ракета не запущена, записывает в координату Y ракеты значение clientheight – 80, в результате процедура обработки события Timer рисует ракету. Нажатие клавиш перемещения курсора обрабатывает процедура события KeyDown (это событие генерируется до тех пор, пока пользователь удерживает клавишу). Процедура, в зависимости от того, какую клавишу удерживает игрок, задает направление перемещения установки. 

	Компоненты ProgressBar1 и ProgressBar2 используются для наглядного представления хода игры. Компонент ProgressBar1 показывает, сколько ракет есть еще в запасе у игрока, чтобы сбить самолеты. Если поле компонента «опустеет», в этом случае значение переменной n будет равно 21, то игра заканчивается, и выдается сообщение о проигрыше. Компонент ProgressBar2 наглядно показывает, сколько самолетов уже сбито. Если поле компонента заполнится, в этом случае значение переменной m будет равно 16, то на экран выводится сообщение о выигрыше.

	В компоненте StatusBar1 отображается количество выстрелов, и количество сбитых самолетов.

	Компоненты ProgressBar1, ProgressBar2, StatusBar1 располагаются на контейнере Panel, который привязан к нижней части окна. 

	

	
2 Спецификация программы

	

	Исполняемый Файл программы «игра «Сбей самолет»» имеет название flight.exe и расположен на диске А: в каталоге курсовая. Состав проекта приведен в таблице 1.

	

	Таблица 1. Состав проекта

	Наименование

	Обозначение

	Примечание

	flight.dpr

	Файл проекта

	Связывает все файлы проекта

	flight.res

	Файл ресурсов

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

	Unit1.dfm

	Файл формы №1

	Содержит список свойств всех компонентов, включенных в форму №1.

	Unit1.pas

	Файл программного модуля для формы №1

	Определяет функциональность формы №1

	

	
3 Текст программы

	

	unit Unit1;

	interface

	uses

	Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, ComCtrls, StdCtrls, Buttons;

	

	type

	TForm1 = class(TForm)

	Timer1: TTimer;

	Panel1: TPanel;

	StatusBar1: TStatusBar;

	ProgressBar1: TProgressBar;

	ProgressBar2: TProgressBar;

	procedure FormPaint(Sender: TObject);

	procedure Timer1Timer(Sender: TObject);

	procedure FormCreate(Sender: TObject);

	procedure FormKeyPress (Sender: TObject; var Key: Char);

	procedure FormKeyDown (Sender: TObject; var Key: Word; Shift: TShiftState);

	

	Private

	back: TBitmap; // фон

	plane, plane2: TBitmap; // Самолеты

	rocket: TBitmap;// Пушка

	bomb : Tbitmap; // Ракета

	x,y, x1, y1, x2,y2, x3, y3: integer; // координаты объектов

	n, m: integer; //Количество выстрелов и попаданий

	Public

	{Public declarations}

	end;

	

	var

	Form1: TForm1;

	

	implementation

	{$R *.dfm}

	// конструктор

	procedure TForm1.FormCreate(Sender: TObject);

	begin

	try

	back := TBitmap.Create;

	back.LoadFromFile('graphics\sky.bmp');

	// установить размер формы в соответствии

	с размером фонового рисунка

	Form1.ClientWidth := back.Width;

	Form1.ClientHeight := back.Height + 50;

	

	plane := TBitmap.Create;

	plane.LoadFromFile('graphics\plane.bmp');

	plane.Transparent := True;

	

	plane2 := TBitmap.Create;

	plane2.LoadFromFile('graphics\plane2.bmp');

	plane2.Transparent := True;

	

	rocket := TBitmap.Create;

	rocket.LoadFromFile('graphics\turel.bmp');

	rocket.Transparent := true;

	bomb := TBitmap.Create;

	bomb.LoadFromFile ('graphics\bomb.bmp');

	bomb.Transparent := true;

	

	StatusBar1.Panels[0].Text := 'Количество выстрелов: ' + inttostr(n) ;

	StatusBar1.Panels[1].Text := 'Количество попаданий: ' + inttostr(m) ;

	

	// исходное положение объектов

	x := -30;

	y := 50;

	x1 := 150;

	y1 := 190;

	x2 := x1;

	y2 := -15;

	x3 := -40;

	y3 := 40 ;

	

	Timer1.Interval := 25;

	finally

	end;

	end;

	

	//Нажатие клавиш

	procedure TForm1.FormKeyPress (Sender: TObject; var Key: Char);

	begin

	if (key = ' ') and (y2 = -15) then

	begin

	x2 := x1 + 8;

	y2 := clientheight - 80;

	n := n + 1;

	StatusBar1.Panels[0].Text := 'Количество выстрелов: ' + inttostr(n) ;

	ProgressBar1.StepIt;

	end;

	end;

	

	procedure Tform1.FormKeyDown(sender: Tobject; var Key: Word; shift: TshiftState);

	begin

	case key of

	VK_LEFT : x1 := x1 - 3;

	VK_RIGHT : x1 := x1 + 3;

	end;

	end;

	

	// сигнал от таймера

	procedure TForm1.Timer1Timer(Sender: TObject);

	var

	r, r1, r2, r3: TRect; // области, в которых находятся объекты

	begin

	randomize;

	r := Rect(x, y, x+plane.Width, y+plane.Height);

	Canvas.CopyRect(r, back.Canvas, r); // стереть объект (восстановить фон)

	r1 := Rect (x1,y1,x1+rocket.Width,y1+rocket.Height);

	Canvas.CopyRect(r1,back.Canvas,r1);

	r3 := Rect(x3,y3,x3+plane2.Width,y3+plane2.Height);

	Canvas.CopyRect(r3,back.Canvas,r3);

	

	If y2 > -15 then

	begin

	y2 := y2 - 2;

	r2 := Rect (x2,y2, x2+bomb.Width,y2+bomb.Height);

	Canvas.CopyRect(r2,back.Canvas,r2);

	end

	else y2 := - 15; //Снаряд долетел до верхней границы окна

	

	x := x + 2;

	x3 := x3 + 3;

	

	//Сравнить координаты ракеты и самолетов

	if (x > x2 -10) and (x < x2 +10) and

	(y < y2 + 10) and (y > y2 - 10) then

	begin

	x := -30;

	y2 := -15;

	m := m + 1;

	StatusBar1.Panels[1].Text := 'Количество попаданий: ' + inttostr(m) ;

	y := 50 + random(80);

	ProgressBar2.StepIt;

	exit;

	end;

	

	if (x3 > x2 -10) and (x3 < x2 +10) and

	(y3 < y2 + 10) and (y3 > y2 - 10) then

	begin

	x3 := -30;

	y2 := -15;

	m := m + 1;

	StatusBar1.Panels[1].Text := 'Количество попаданий: ' + inttostr(m) ;

	y3 := 60 + random(80);

	ProgressBar2.StepIt;

	exit;

	end;

	

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

	if m > 15 then

	begin

	timer1.Enabled := false;

	ShowMessage ('Вы Выиграли!!!!');

	n := 0;

	m := 0;

	y2 := -15;

	progressbar1.Position := 20;

	progressbar2.Position := 0;

	StatusBar1.Panels[1].Text := 'Количество попаданий: ' + inttostr(m) ;

	StatusBar1.Panels[0].Text := 'Количество выстрелов: ' + inttostr(n) ;

	timer1.Enabled := true;

	end;

	if n > 20 then

	begin

	timer1.Enabled := false;

	ShowMessage ('Вы проиграли!!!');

	n := 0;

	m := 0;

	y2 := -15;

	progressbar1.Position := 20;

	progressbar2.Position := 0;

	StatusBar1.Panels[1].Text := 'Количество попаданий: ' + inttostr(m) ;

	StatusBar1.Panels[0].Text := 'Количество выстрелов: ' + inttostr(n) ;

	timer1.Enabled := true;

	end;

	

	//не пустить пушку за границы формы

	if x1 < 0 then x1 := 0;

	if x1 > form1.width - rocket.Width then x1 := form1.Width - rocket.Width;

	

	Canvas.Draw(x,y,plane);

	Canvas.Draw(x1,y1,rocket);

	Canvas.Draw(x2,y2,bomb);

	Canvas.Draw(x3,y3,plane2);

	

	if x > Form1.Width + plane.Width + 10 then

	x := -20;

	if x3 > Form1.Width + plane2.Width + 10 then

	x3 := -20;

	

	end;

	

	procedure TForm1.FormPaint(Sender: TObject);

	begin

	Canvas.Draw(0,0,back);

	Canvas.Draw(x,y,plane);

	Canvas.Draw(x3,y3,plane2);

	Canvas.Draw(x1,y1,rocket);

	Canvas.Draw(x2,y2,bomb); 

	end;

	end.

	
4 Описание программы

	

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

	

	Программа «Сбей самолет» имеет наименование flight.exe, и представляет собой компьютерную игру. Пользователю предоставляется возможность сбить самолеты, появляющиеся на экране, и летящие с разной скоростью.

	Приложение, созданное в Delphi, будет работать на другом компьютере только в том случае, если на этом компьютере есть необходимые для его работы динамические библиотеки. Таким образом, помимо EXE-файла на компьютер пользователя надо перенести динамические библиотеки, необходимые программе, как минимум, так называемую библиотеку времени выполнения (Runtime Library, файл rtl100.bpl) и библиотеку визуальных компонентов (Visual Components Library, файл vcl100.bpl). Библиотеки, используемые программой, должны находиться в том же каталоге, что и EXE-файл. Однако весь необходимый для работы программы код можно включить непосредственно в EXE-файл (в этом случае динамические библиотеки можно не устанавливать на компьютер пользователя), что и сделано в данной программе.

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

	

	
4.2 Функциональное назначение

	

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

	

	4.3. Описание логической структуры

	

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

	Чтобы воспроизвести движение объекта, необходимо сначала вывести объект на фоне, затем через некоторое время стереть этот объект, вывести фон, чтобы восстановить «испорченную» область, и снова вывести объект, но уже с небольшим отклонением от первоначального положения. 

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

	Например:

	r: TRect;

	r := Rect (x, y, x+plane.Width, y+plane.Height);

	После чего можно вывести объект, стереть его, и снова вывести: 

	Canvas.CopyRect(r, back.Canvas, r); 

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

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

	Например:

	procedure Тform1.FormKeyDown(sender: Тobject; var Key: Word; shift: tshiftstate);

	begin

	case key of

	VK_LEFT : x1 := x1 - 3;

	VK_RIGHT : x1 := x1 + 3;

	end;

	end;

	Таким образом, координата Х пушки меняется, и процедура мультипликации рисует ее со смещением.

	Для того чтобы произвести пуск ракеты строго из центра пушки, необходимо координате Х ракеты присвоить значение координаты центра пушки (Координате Х пушки, прибавить 8). А координате У ракеты установить значение чуть меньше ширины формы, и затем с каждым сигналом от таймера прибавлять к этой координате определенное ей число. Таким образом, ракета будет смещаться вверх. 

	Например: 

	procedure TForm1.FormKeyPress (Sender: TObject; var Key: Char);

	begin

	if (key = ' ') and (y2 = -15) then

	begin

	x2 := x1 + 8;

	y2 := clientheight - 80;

	n := n + 1;

	StatusBar1.Panels[0].Text := 'Количество выстрелов: ' + inttostr(n) ;

	ProgressBar1.StepIt;

	end;

	end;

	Чтобы определить попадание ракеты в самолет, необходимо сравнить координаты ракеты, и координаты самолета. Если они совпадают, стереть самолет и ракету, присвоить координате У ракеты значение минус 15, таким образом, программа будет знать, что можно пустить следующую ракету, присвоить переменной счетчика попаданий +1, и пустить самолет сначала. Например: 

	if (x > x2 -10) and (x < x2 +10) and

	(y < y2 + 10) and (y > y2 - 10) then

	begin

	x := -30;

	y2 := -15;

	m := m + 1;

	StatusBar1.Panels[1].Text := 'Количество попаданий: ' + inttostr(m) ;

	y := 50 + random(80);

	ProgressBar2.StepIt;

	exit;

	end;

	Здесь Х это координата самолета, а Х2 – ракеты.

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

	Например: 

	if m = 16 then

	begin

	timer1.Enabled := false;

	ShowMessage ('Вы Выиграли!!!!');

	n := 0;

	m := 0;

	y2 := -15;

	progressbar1.Position := 20;

	progressbar2.Position := 0;

	StatusBar1.Panels[1].Text := 'Количество попаданий: ' + inttostr(m) ;

	StatusBar1.Panels[0].Text := 'Количество выстрелов: ' + inttostr(n) ;

	timer1.Enabled := true;

	end.

	

	4.4 Используемые технические средства

	

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

	Для правильного функционирования программы необходимо иметь процессор Pentium III или аналогичный AMD c тактовой частотой не менее 600 МГц; оперативную память не менее 512 Мб; свободного пространства на жестком диске не менее 600 Мб; операционную систему Windows 9x, 2000, XP или Vista; клавиатура, мышь.

	
4.5 Вызов и загрузка

	

	Для того чтобы запустить программу, необходимо найти, и запустить файл “flight.exe” на диске A в каталоге «Курсовая». После загрузки программы в оперативную память, на экране отобразится окно программы (см. Приложение1). 

	

	4.6 Входные данные

	

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

	

	4.7. Выходные данные

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

	

	
5 Тестирование программы

	

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

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

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

	Тестирование программы проходило на компьютере, с установленной на него ОС Windows XP. Было проведено 5 запусков игры, с конечными результатами как в пользу игрока, так и в пользу компьютера. Все правила игры и условия в данной программе выполняются. Действия игрока и компьютера находятся в рамках правил.

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

	

	
ВНЕДРЕНИЕ

	

	1. Условия выполнения программы

	

	Для выполнения программы требуется минимум:

	Pentium III и выше; 

	Объем оперативной памяти не менее 512 Мб;

	Жесткий диск не менее 600 Мб;

	

	2. Выполнение программы

	

	Запуск «flight.exe»- > по экрану начинают лететь самолетики, до момента, когда количество выстрелов и ли попаданий не будет больше нормы.

	

	3. Сообщение оператору

	

	«Вы выиграли» - игра начинается сначала;

	«Вы проиграли» - игра начинается снова (см. Приложение 3) . 

	

	
ЗАКЛЮЧЕНИЕ

	

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

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

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

	В процессе тестирования приложения ошибок не обнаружено.

	

	
ГЛОССАРИЙ

	

	№

	п/п

	Новое понятие

	Содержание

	1

	2

	3

	1

	Компонент

	Функциональный элемент, имеющий определенные свойства и размещаемый программистом в окне формы 

	2

	Форма

	Окно приложения на этапе разработки

	3

	Проект

	Совокупность файлов, обеспечивающих разработку приложения в Delphi

	4

	Файл проекта

	Автоматически создаваемый файл, связывающий вместе все файлы приложения и содержащий код инициализации

	5

	Файл ресурсов

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

	6

	Файл формы

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

	7

	Файл программного модуля

	Файл, содержащий описание связанной с модулем формы, процедур и функций программной логики функционирования окна приложения в синтаксисе Object Pascal 

	8

	Свойство

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

	9

	Событие

	Свойство процедурного типа, предназначенное для создания пользовательской реакции на то или иное входное воздействие

	10

	Обработчик события

	Фрагмент программы, который выполняется в ответ на определенное изменение в программе или Windows

	

	

	
ЛИТЕРАТУРА

		

			Фаронов В. В. Delphi 4: Учебный курс. – М.: Издательство “Нолидж”, 1998.

			Дарахвелидзе П., Марков Е. Программирование в Delphi 4. – СПб.: БХВ – Санкт-Петербург, 1999.

			Культин Н.Б. Основы программирования в Turbo Delphi. – СПб.: БХВ - Петербург, 2007.

			Культин Н.Б. Delphi в задачах и примерах. – СПб.: БХВ – Петербург, 2003. 

			Вирт. Н. Алгоритмы и структуры данных: Пер. с англ. – М.: Мир, 1989.

			Фокс Дж. Программное обеспечение и его разработка: Пер. с англ. – М.: Мир, 1985.

			Роб Баас, Майк Фервай, Хайдемария Гюнтер. Delphi 4. Полное руководство. – К.: Издательская группа BHV, 1999.

			Архангельский А. Я. Delphi5. – М., ЗАО «Издательство «Бином», 2001.

	

	
Приложение 1

	

		

















	

Рис.4. Вид окна после запуска программы	

	

	
Приложение 2

	

	

	

	















Рис.5. Вид окна во время работы программы






Приложение 3

	





















Рис.6.1. Сообщение пользователю о проигрыше



















Рис.6.2. Сообщение пользователю о выигрыше