Описание особенностей алгоритма в модулях Unit1.Данный модуль содержит переменные и методы, с помощью которых осуществляется управление программой. Глобальные переменные: A:mass2- массив, содержащий скорости лошадей, заполняющийся в рандомном порядке. d, s ,j, k, b, w, h1, h2, bn, h3, h4, d1, h5:integer – переменные необходимые для организации тотализатора. b1, b2:tbitmap – изображения анимации бегущих лошадей. Методы: procedure TForm1.FormCreate(Sender: TObject) – очистка edit1,edit2,Memo1, присваивается первоначальная сумма очков, вывод количества очков в Memo1,переменным анимации движения лошадей присваиваются соответствующие значения. procedure TForm1.Button3Click(Sender: TObject) – принимается размер ставки и лошадь на которую поставил игрок. procedure TForm1.Button1Click(Sender: TObject) - заполняет массив скоростей произвольными значениями и запускает забег включением Timer1. procedure TForm1.Timer1Timer(Sender: TObject) – изменяет параметр компонентов bitbtn1-5 .left и после каждого шага меняет параметр Glyph. Действие происходит пока лошади не достигнут финиша. После этого запускается Timer2. procedure TForm1.Timer2Timer(Sender: TObject) – определяет лошадь-победителя, выводит сообщение, подсчитывает выигрыш/проигрыш. Выводит количество очков в Memo1. Возвращает лошадей на стартовую позицию. procedure TForm1.Button2Click(Sender: TObject) – принимает из edit1 количество долга и выводит его количество количество очков в Memo1. procedure TForm1.Button2Click(Sender: TObject) – возвращает весь долг. Алгоритм работы программы Блок-схема работы программы представлена на рисунке 2.  Рисунок 2 – Алгоритм работы программы
3 Руководство пользователю Для запуска программы необходимо выбрать файл «Project1.exe». После того, как пользователь откроет данный файл, на экране появится окно программы, как показано на рисунке 3.  Рисунок 3 –Окно начало программы Для того чтобы начать играть необходимо сделать ставку и нажать клавишу начать забег. Результат забега представлен на рисунке 4.  Рисунок 3 –Окно конца забега 4 Тестирование программы Испытания на представительном множестве примеров с выполнением проверок правильности результатов, которые программа позволяет осуществлять, показали корректность программы. Тестирование программы показало, что данный проект может работать при любых несанкционированных действиях пользователя. Минимальные требования для работы с программой: IBM – совместимый 486dx или выше, 5 мб. свободного пространства на жестком диске, ОС Win9x/Me, Win2000/XP/Vista/7. Заключение В данной курсовой работе разработано игровое приложение. Проведенные тестирование программы показывают корректность её работы. Опыт работы с ней свидетельствует о дружелюбности и высокой наглядности интерфейса, что наряду с наличием упомянутых дополнительных режимов дает основание рекомендовать данную программу для применения в целях развлечения. По мнению автора программы, основные задачи проекта выполнены полностью .
Список использованных источников 1 СТО 02069024. 101 – 2014. Работы студенческие. Общие требования и правила оформления–Введ. 2002–07–01. – Оренбург: отдел качества образования федерального государственного бюджетного образовательного учреждения высшего профессионального образования «Оренбургский государственный университет», 2014. – 86 с. 2 Архангельский А.Я. Программирование в Delphi 6 /А.Я. Архангельский// М.: ЗАО «Издательство БИНОМ», 2002г. – 1200 с. 3 Фаронов В.В. Delphi 6. Учебный курс / В.В. Фараонов// Издательство Молгачев С.В., 2001. – 672с. 4 Колосов С.В. Объектно-ориентированное программирование в среде Delphi / С.В. Колосов// М.: БГУИР, 2001. – 48с. 5 Программирование в среде DELPHI. Лабораторный практикум для студентов всех специальностей/ А.Б. Закалюкин, С.В. Колосов, А.А. Навроцкий, А.К. Синицын, А.И. Шакирин; Под общ. ред. А.К ... – Мн.: БГУИР, 1998. – 94 с. Приложение А (обязательное) unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, Buttons, jpeg; type TForm1 = class(TForm) Button1: TButton; Memo1: TMemo; Button3: TButton; RadioGroup1: TRadioGroup; Edit1: TEdit; Label1: TLabel; Image2: TImage; BitBtn1: TBitBtn; BitBtn2: TBitBtn; Label2: TLabel; Label3: TLabel; Label4: TLabel; Label5: TLabel; Label6: TLabel; BitBtn3: TBitBtn; BitBtn4: TBitBtn; BitBtn5: TBitBtn; Timer1: TTimer; Timer2: TTimer; Button2: TButton; Edit2: TEdit; Button4: TButton; procedure FormCreate(Sender: TObject); procedure Button3Click(Sender: TObject); procedure Timer1Timer(Sender: TObject); procedure Button1Click(Sender: TObject); procedure Timer2Timer(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button4Click(Sender: TObject); private { Private declarations } public { Public declarations } end; const Nmax=5; n=5; Type mas2 = array[1..Nmax] of integer; var Form1: TForm1; A:mas2; d,s,j,k,b,w,h1,h2,bn,h3,h4,d1,h5:integer; b1,b2:tbitmap; implementation {$R *.dfm} procedure TForm1.FormCreate(Sender: TObject); begin b:=5000; memo1.Clear; edit1.clear; edit2.Clear; Memo1.Lines.Add('Âàø áàíê ñîñòàâëÿåò 5000') ; b1:=tbitmap.create; b1.LoadFromFile('D:\bsuir\êóðñîâàÿ\íîâàÿ ïàïêà\12345.bmp'); b2:=tbitmap.create; b2.LoadFromFile('D:\bsuir\êóðñîâàÿ\íîâàÿ ïàïêà\54321.bmp'); end; procedure TForm1.Button3Click(Sender: TObject); begin bn:=b; s:=StrToint(Edit1.Text); b:=b-s; Memo1.Lines.Add('Ñòàêà â ðàçìåðå '+inttostr(s)+' ïðèíÿòà.Ïðè âûéãðûøå âû ïîëó÷èòå '+inttostr(2*s)); h1:=0; h2:=0; h3:=0; h4:=0; h5:=0; case radiogroup1.itemindex of 0:h1:=s; 1:h2:=s; 2:h3:=s ; 3:h4:=s; 4:h5:=s; end; end; procedure TForm1.Timer1Timer(Sender: TObject); var n,j:integer; begin while (bitbtn1.Left<400) and (bitbtn2.Left<400) and (bitbtn3.Left<400) and (bitbtn4.Left<400) and (bitbtn5.Left<400) do begin bitbtn1.Glyph:=b2; bitbtn1.Repaint; bitbtn2.Glyph:=b2; bitbtn2.Repaint; bitbtn3.Glyph:=b2;bitbtn3.Repaint; bitbtn4.Glyph:=b2; bitbtn4.Repaint; bitbtn5.Glyph:=b2; bitbtn5.Repaint; sleep(200) ; bitbtn1.Left:=bitbtn1.left+A[1]; bitbtn1.Repaint; bitbtn2.Left:=bitbtn2.left+A[2];bitbtn2.Repaint; bitbtn3.Left:=bitbtn3.left+A[3];bitbtn3.Repaint; bitbtn4.Left:=bitbtn4.left+A[4];bitbtn4.Repaint; bitbtn5.Left:=bitbtn5.left+A[5];bitbtn5.Repaint; bitbtn1.Glyph:=b1; bitbtn1.Repaint; bitbtn2.Glyph:=b1; bitbtn2.Repaint; bitbtn3.Glyph:=b1; bitbtn3.Repaint; bitbtn4.Glyph:=b1; bitbtn4.Repaint; bitbtn5.Glyph:=b1; bitbtn5.Repaint; sleep(200); end; while (bitbtn1.Left<824) and (bitbtn2.Left<824) and (bitbtn3.Left<824) and (bitbtn4.Left<824) and (bitbtn5.Left<824) do begin bitbtn1.Glyph:=b2; bitbtn1.Repaint; bitbtn2.Glyph:=b2; bitbtn2.Repaint; bitbtn3.Glyph:=b2;bitbtn3.Repaint; bitbtn4.Glyph:=b2; bitbtn4.Repaint; bitbtn5.Glyph:=b2; bitbtn5.Repaint; sleep(200) ; bitbtn1.Left:=bitbtn1.left+A[1]; bitbtn1.Repaint; bitbtn2.Left:=bitbtn2.left+A[2];bitbtn2.Repaint; bitbtn3.Left:=bitbtn3.left+A[3];bitbtn3.Repaint; bitbtn4.Left:=bitbtn4.left+A[4];bitbtn4.Repaint; bitbtn5.Left:=bitbtn5.left+A[5];bitbtn5.Repaint; bitbtn1.Glyph:=b1; bitbtn1.Repaint; bitbtn2.Glyph:=b1; bitbtn2.Repaint; bitbtn3.Glyph:=b1; bitbtn3.Repaint; bitbtn4.Glyph:=b1; bitbtn4.Repaint; bitbtn5.Glyph:=b1; bitbtn5.Repaint; sleep(200); end; timer2.Enabled:=true; timer1.Enabled:=false; end; procedure TForm1.Button1Click(Sender: TObject); begin k:=0; randomize; bn:=b; for j:=1 to n do A[j]:=random(4)+15 ; timer1.enabled:=true; end; procedure TForm1.Timer2Timer(Sender: TObject); var l,j,n:integer; begin l:=1; if k<l then begin timer1.Enabled:=true; if bitbtn1.Left+5>824 then begin sleep(2000); b:=b+2*h1; k:=l; timer2.Enabled:=false; memo1.Lines.add('âûéãðàëà ëîøàäü ¹1') ; end; if bitbtn2.Left+5>824 then begin sleep(2000); b:=b+2*h2; k:=l; timer2.Enabled:=false; memo1.Lines.add('âûéãðàëà ëîøàäü ¹2') ; end; if bitbtn4.Left+5>824 then begin sleep(500); b:=b+2*h4; k:=l; timer2.Enabled:=false; memo1.Lines.add('âûéãðàëà ëîøàäü ¹4') ; end; if bitbtn5.Left+5>824 then begin sleep(500); b:=b+2*h5; k:=l; timer2.Enabled:=false; memo1.Lines.add('âûéãðàëà ëîøàäü ¹5') ; end; if bitbtn3.Left+5>824 then begin sleep(500); b:=b+2*h3; k:=l; timer2.Enabled:=false; memo1.Lines.add('âûéãðàëà ëîøàäü ¹3') ; end; if bitbtn1.Left+5>824 then showmessage('Âûéãðàëà ëîøàäü ¹1') ; if bitbtn2.Left+5>824 then showmessage('Âûéãðàëà ëîøàäü ¹2') ; if bitbtn4.Left+5>824 then showmessage('Âûéãðàëà ëîøàäü ¹4') ; if bitbtn5.Left+5>824 then showmessage('Âûéãðàëà ëîøàäü ¹5') ; if bitbtn3.Left+5>824 then showmessage('Âûéãðàëà ëîøàäü ¹3') ; memo1.Lines.add('Âàø áàíê ñîñòàâëÿåò '+inttostr(b)) ; bitbtn1.Left:=86; bitbtn2.Left:=86; bitbtn3.Left:=86; bitbtn4.Left:=86; bitbtn5.Left:=86; end; end; procedure TForm1.Button2Click(Sender: TObject); begin d1:=strtoint(edit2.text); d:=d+d1; b:=b+d1; memo1.Lines.add('Âû âçÿëè â äîëã '+inttostr(d1)+'.íå çàáóäüòå âåðíóòü äîëã.'+'Âàøü áàíê ñîñòàâëÿåò '+inttostr(b)) ; end; procedure TForm1.Button4Click(Sender: TObject); begin b:=b-d; memo1.Lines.Add('Ïðèÿòíî áûëî èìåòü ñ âàìè äåëî.Âàø áàíê ñîñòàâëÿåò '+inttostr(b)) ; end; end. |