Назначение и область применения
Скачать 478.8 Kb.
|
ОГЛАВЛЕНИЕ РАЗРАБОТКА ЭСКИЗНОГО И ТЕХНИЧЕСКОГО ПРОЕКТОВ ПРОГРАММЫ 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. 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. Главное окно программы Компонент_Form_1._Свойства:Caption_-_Сбей_самолет;BorderStyle_-_bsSingle;1_-_Компонент__Timer1.'>Компонент 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. Состав проекта
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 в части пользовательского интерфейса и технологий отображения графики. В результате выполнения проекта была полностью реализована игра «Сбей самолет», однако в приложение можно добавить озвучивание событий игры, уровень сложности игры и разные настройки параметров игры. Это вызвало бы больший интерес к игре. Приложение представляет собой очень простой вариант игры «Сбей самолет». В процессе тестирования приложения ошибок не обнаружено. ГЛОССАРИЙ
ЛИТЕРАТУРА Фаронов В. В. 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. Сообщение пользователю о выигрыше |