МегаПредмет

ПОЗНАВАТЕЛЬНОЕ

Сила воли ведет к действию, а позитивные действия формируют позитивное отношение


Как определить диапазон голоса - ваш вокал


Игровые автоматы с быстрым выводом


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


Целительная привычка


Как самому избавиться от обидчивости


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


Тренинг уверенности в себе


Вкуснейший "Салат из свеклы с чесноком"


Натюрморт и его изобразительные возможности


Применение, как принимать мумие? Мумие для волос, лица, при переломах, при кровотечении и т.д.


Как научиться брать на себя ответственность


Зачем нужны границы в отношениях с детьми?


Световозвращающие элементы на детской одежде


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


Как слышать голос Бога


Классификация ожирения по ИМТ (ВОЗ)


Глава 3. Завет мужчины с женщиной


Оси и плоскости тела человека


Оси и плоскости тела человека - Тело человека состоит из определенных топографических частей и участков, в которых расположены органы, мышцы, сосуды, нервы и т.д.


Отёска стен и прирубка косяков Отёска стен и прирубка косяков - Когда на доме не достаёт окон и дверей, красивое высокое крыльцо ещё только в воображении, приходится подниматься с улицы в дом по трапу.


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

Отладка и тестирование программной разработки





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

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

ЗАКЛЮЧЕНИЕ

В результате выполнения данной курсовой работы, была разработана игровая программа под названием Парные картинки. Было проведено исследование компонентов программной среды Embarcadero RAD Studio XE3, использовалось множество процедур и функций.

СПИСОК ИСПОЛЬЗУЕМОЙ ЛИТЕРАТУРЫ

1)ЕСПД ГОСТ 19.101 – виды программ и программных документов;

2)ЕСПД ГОСТ 19.102 – стадии разработки;

3)ЕСПД ГОСТ 19.105 – общие требования к программным документам;

4)ЕСПД ГОСТ 19.106 – требования к программным документам, выполненным печатным способом;

5)ЕСПД ГОСТ 19.401 – текст программы, требования к содержанию и оформлению;

6)ЕСПД ГОСТ 19.402 – описание программы;

7)ЕСПД ГОСТ 19.504 – руководства программиста

8)ЕСПД ГОСТ 19.505 – руководство оператора;

9)ЕСПД ГОСТ 19.509 – описание языка;

10)ЕСПД ГОСТ 19.781 – термины и определения;

11)http://www.realcoding.net/teach/Delphi_7;

12)http://delphi.support.uz.

ПРИЛОЖЕНИЕ

ИСХОДНЫЙ КОД ПРОГРАММЫ

unit Unit1;

interface

uses

Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,

Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.Imaging.jpeg,

Vcl.ExtCtrls;

type

TForm1 = class(TForm)

Image1: TImage;

Image2: TImage;

Image3: TImage;

Image4: TImage;

Image5: TImage;

Image6: TImage;

Image7: TImage;

Image8: TImage;

Image9: TImage;

Image10: TImage;

Image11: TImage;

Image12: TImage;

Image13: TImage;

Image14: TImage;

Image15: TImage;

Image16: TImage;

Button1: TButton;

Button2: TButton;

Button3: TButton;

Button4: TButton;

Button5: TButton;

Button6: TButton;

Button7: TButton;

Button8: TButton;

Button9: TButton;

Button10: TButton;

Button11: TButton;

Button12: TButton;

Button13: TButton;

Button14: TButton;

Button15: TButton;

Button16: TButton;

Button17: TButton;

Timer1: TTimer;

Label1: TLabel;

Image17: TImage;

procedure Button17Click(Sender: TObject);

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

procedure Button3Click(Sender: TObject);

procedure Button4Click(Sender: TObject);

procedure Button5Click(Sender: TObject);

procedure Button6Click(Sender: TObject);

procedure Button7Click(Sender: TObject);

procedure Button8Click(Sender: TObject);

procedure Button9Click(Sender: TObject);

procedure Button10Click(Sender: TObject);

procedure Button11Click(Sender: TObject);

procedure Button12Click(Sender: TObject);

procedure Button13Click(Sender: TObject);

procedure Button14Click(Sender: TObject);

procedure Button15Click(Sender: TObject);

procedure Button16Click(Sender: TObject);

procedure Timer1Timer(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

rasp:array[1..16] of integer;

clack:array[1..2] of integer;

sch: integer;

chas,min,sec,msec: integer;

gameover:boolean;

implementation

{$R *.dfm}

procedure TForm1.Button17Click(Sender: TObject);

var

i,r: byte;

prov:array[1..16] of integer;

koord:array[1..2,1..16] of integer;

Eb: TImage;

Be: TButton;

j: Integer;

begin

for I := 1 to 16 do

begin

Eb:=(FindComponent('Image'+IntToStr(i)) as TImage); {Настройка компонентов IMAGE на форме и перевод значения VISIBLE в TRUE (Отображение всех картинок и кнопок)}

Eb.Visible := true;

Be:=(FindComponent('Button'+IntToStr(i)) as TButton); {Настройка компонентов BUTTON на форме и перевод значения VISIBLE в TRUE (Отображение всех картинок и кнопок)}

Be.Visible := true;

end;

label1.Visible:=true; {Отображение компонента статистики игры и обнуление переменных}

chas:=0; min:=0;Sec:=0; msec:=0;

sch:=0;

gameover:=false;

clack[1]:=0;clack[2]:=0;

image17.Visible:=false;

for i:= 1 to 16 do

prov[i]:=0; {обнуление массива резервированных перемещений}

 

for i:= 1 to 16 do {Случайное расспределение компонентов IMAGE в массиве}

begin

repeat

r := random (16)+ 1;

until prov[r] < 1;

rasp[i] := r;

inc(prov[r]);

end;

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

koord[1,1]:=8; koord[2,1]:=8;

koord[1,2]:=8; koord[2,2]:=111;

koord[1,3]:=8; koord[2,3]:=214;

koord[1,4]:=8; koord[2,4]:=317;

 

koord[1,5]:=111; koord[2,5]:=8;

koord[1,6]:=111; koord[2,6]:=111;

koord[1,7]:=111; koord[2,7]:=214;

koord[1,8]:=111; koord[2,8]:=317;

 

koord[1,9]:=214; koord[2,9]:=8;

koord[1,10]:=214; koord[2,10]:=111;

koord[1,11]:=214; koord[2,11]:=214;

koord[1,12]:=214; koord[2,12]:=317;

 

koord[1,13]:=317; koord[2,13]:=8;

koord[1,14]:=317; koord[2,14]:=111;

koord[1,15]:=317; koord[2,15]:=214;

koord[1,16]:=317; koord[2,16]:=317; {стандартные координаты расположения IMAGE на форме}

 

 

for I := 1 to 16 do {присвоение координат компонентам IMAGE}

begin

Eb:=(FindComponent('Image'+IntToStr(rasp[i])) as TImage);

Eb.Top := koord[1,i];

Eb.Left := koord[2,i];

end;

end;

procedure TForm1.Timer1Timer(Sender: TObject);

var

i: Integer;

Eb1: TImage;

Be1: TButton;

begin

if (not(Image1.Visible)and

not(Image2.Visible)and

not(Image3.Visible)and

not(Image4.Visible)and

not(Image5.Visible)and

not(Image6.Visible)and

not(Image7.Visible)and

not(Image8.Visible)and

not(Image9.Visible)and

not(Image10.Visible)and

not(Image11.Visible)and

not(Image12.Visible)and

not(Image13.Visible)and

not(Image14.Visible)and

not(Image15.Visible)and

not(Image16.Visible)and not(sch=0)) then begin image17.Visible:=true; gameover:=true; end; {если все картинки невидимы то игра выводит GAME OVER и помечается флагом об окончании игры}

if not(gameover) then {присвоение счетчика времени и вывод всей статистики(часы, минуты, секунды, ходы)}

begin

msec:= msec+ 100;

if msec=1000 then begin msec:=0; sec:=sec+1; end;

if sec=60 then begin sec:=0; min:=min+1; end;

if min=60 then begin min:=0; chas:=chas+1; end;

label1.Caption:='Ходов:'+IntToStr(sch)+' Продолжительность игры: '+IntToStr(chas)+':'+IntToStr(min)+':'+IntToStr(sec)+':'+IntToStr(msec);

end;

if clack[2]<>0 {если вторая картинка открыта идет проверка совпадения открытых картинок, при положительном результате картинки исчезают, при отрицательном картинки закрывается кнопкой}

then

begin

for i := 1 to 4 do

begin

if (( (rasp[clack[1]]=i)and(rasp[clack[2]]=i+4) )or ( (rasp[clack[1]]=i+4)and(rasp[clack[2]]=i) ))

then begin

Eb1:=(FindComponent('Image'+IntToStr(rasp[clack[1]])) as TImage);

Eb1.Visible := false;

Eb1:=(FindComponent('Image'+IntToStr(rasp[clack[2]])) as TImage);

Eb1.Visible := false;

clack[1]:=0;clack[2]:=0;

end;

end;

for i := 8 to 12 do

begin

if (( (rasp[clack[1]]=i)and(rasp[clack[2]]=i+4) )or ( (rasp[clack[1]]=i+4)and(rasp[clack[2]]=i) ))

then begin

Eb1:=(FindComponent('Image'+IntToStr(rasp[clack[1]])) as TImage);

Eb1.Visible := false;

Eb1:=(FindComponent('Image'+IntToStr(rasp[clack[2]])) as TImage);

Eb1.Visible := false;

clack[1]:=0;clack[2]:=0;

end;

end;

if clack[2]<>0 then begin

Be1:=(FindComponent('Button'+IntToStr(clack[1])) as TButton);

Be1.Visible := true;

Be1:=(FindComponent('Button'+IntToStr(clack[2])) as TButton);

Be1.Visible := true;

clack[1]:=0;clack[2]:=0;

Sleep(100);

end;

end;

end;

procedure TForm1.Button1Click(Sender: TObject);

begin

Form1.Button1.Visible:=false; {Скрытие кнопки}

sch:=sch+1; {Увеличение статистики нажатий}

if clack[1]=0 then begin clack[1]:=1; end {Регистрация в массиве нажатий состояния кнопки расположение открываемой картинки}

else begin clack[2]:=1; end;

end;

procedure TForm1.Button2Click(Sender: TObject);

begin

Form1.Button2.Visible:=false; {Скрытие кнопки}

sch:=sch+1; {Увеличение статистики нажатий}

if clack[1]=0 then begin clack[1]:=2; end {Регистрация в массиве нажатий состояния кнопки расположение открываемой картинки}

else begin clack[2]:=2; end;

end;

procedure TForm1.Button3Click(Sender: TObject);

begin

Form1.Button3.Visible:=false; {Скрытие кнопки}

sch:=sch+1; {Увеличение статистики нажатий}

if clack[1]=0 then begin clack[1]:=3; end {Регистрация в массиве нажатий состояния кнопки расположение открываемой картинки}

else begin clack[2]:=3; end;

end;

procedure TForm1.Button4Click(Sender: TObject);

begin

Form1.Button4.Visible:=false; {Скрытие кнопки}

sch:=sch+1; {Увеличение статистики нажатий}

if clack[1]=0 then begin clack[1]:=4; end {Регистрация в массиве нажатий состояния кнопки расположение открываемой картинки}

else begin clack[2]:=4; end;

end;

procedure TForm1.Button5Click(Sender: TObject);

begin

Form1.Button5.Visible:=false; {Скрытие кнопки}

sch:=sch+1; {Увеличение статистики нажатий}

if clack[1]=0 then begin clack[1]:=5; end {Регистрация в массиве нажатий состояния кнопки расположение открываемой картинки}

else begin clack[2]:=5; end;

end;

procedure TForm1.Button6Click(Sender: TObject);

begin

Form1.Button6.Visible:=false; {Скрытие кнопки}

sch:=sch+1; {Увеличение статистики нажатий}

if clack[1]=0 then begin clack[1]:=6; end {Регистрация в массиве нажатий состояния кнопки расположение открываемой картинки}

else begin clack[2]:=6; end;

end;

procedure TForm1.Button7Click(Sender: TObject);

begin

Form1.Button7.Visible:=false; {Скрытие кнопки}

sch:=sch+1; {Увеличение статистики нажатий}

if clack[1]=0 then begin clack[1]:=7; end {Регистрация в массиве нажатий состояния кнопки расположение открываемой картинки}

else begin clack[2]:=7; end;

end;

procedure TForm1.Button8Click(Sender: TObject);

begin

Form1.Button8.Visible:=false; {Скрытие кнопки}

sch:=sch+1; {Увеличение статистики нажатий}

if clack[1]=0 then begin clack[1]:=8; end {Регистрация в массиве нажатий состояния кнопки расположение открываемой картинки}

else begin clack[2]:=8; end;

end;

procedure TForm1.Button9Click(Sender: TObject);

begin

Form1.Button9.Visible:=false; {Скрытие кнопки}

sch:=sch+1; {Увеличение статистики нажатий}

if clack[1]=0 then begin clack[1]:=9; end {Регистрация в массиве нажатий состояния кнопки расположение открываемой картинки}

else begin clack[2]:=9; end;

end;

procedure TForm1.Button10Click(Sender: TObject);

begin

Form1.Button10.Visible:=false; {Скрытие кнопки}

sch:=sch+1; {Увеличение статистики нажатий}

if clack[1]=0 then begin clack[1]:=10; end {Регистрация в массиве нажатий состояния кнопки расположение открываемой картинки}

else begin clack[2]:=10; end;

end;

procedure TForm1.Button11Click(Sender: TObject);

begin

Form1.Button11.Visible:=false; {Скрытие кнопки}

sch:=sch+1; {Увеличение статистики нажатий}

if clack[1]=0 then begin clack[1]:=11; end {Регистрация в массиве нажатий состояния кнопки расположение открываемой картинки}

else begin clack[2]:=11; end;

end;

procedure TForm1.Button12Click(Sender: TObject);

begin

Form1.Button12.Visible:=false; {Скрытие кнопки}

sch:=sch+1; {Увеличение статистики нажатий}

if clack[1]=0 then begin clack[1]:=12; end {Регистрация в массиве нажатий состояния кнопки расположение открываемой картинки}

else begin clack[2]:=12; end;

end;

procedure TForm1.Button13Click(Sender: TObject);

begin

Form1.Button13.Visible:=false; {Скрытие кнопки}

sch:=sch+1; {Увеличение статистики нажатий}

if clack[1]=0 then begin clack[1]:=13; end {Регистрация в массиве нажатий состояния кнопки расположение открываемой картинки}

else begin clack[2]:=13; end;

end;

procedure TForm1.Button14Click(Sender: TObject);

begin

Form1.Button14.Visible:=false; {Скрытие кнопки}

sch:=sch+1; {Увеличение статистики нажатий}

if clack[1]=0 then begin clack[1]:=14; end {Регистрация в массиве нажатий состояния кнопки расположение открываемой картинки}

else begin clack[2]:=14; end;

end;

procedure TForm1.Button15Click(Sender: TObject);

begin

Form1.Button15.Visible:=false; {Скрытие кнопки}

sch:=sch+1; {Увеличение статистики нажатий}

if clack[1]=0 then begin clack[1]:=15; end {Регистрация в массиве нажатий состояния кнопки расположение открываемой картинки}

else begin clack[2]:=15; end;

end;

procedure TForm1.Button16Click(Sender: TObject);

begin

Form1.Button16.Visible:=false; {Скрытие кнопки}

sch:=sch+1; {Увеличение статистики нажатий}

if clack[1]=0 then begin clack[1]:=16; end {Регистрация в массиве нажатий состояния кнопки расположение открываемой картинки}

else begin clack[2]:=16; end;

end;

end.

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

 





©2015 www.megapredmet.ru Все права принадлежат авторам размещенных материалов.