![]() |
|
Модераторы: Poseidon |
![]()
|
|
| Coфико |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 21.5.2010 Репутация: нет Всего: нет |
Привет мне очень нужна помощь с Делфи.
У меня есть игра " Меморина" Мне нужно её разобрать что и как и от куда . Половину я сделала а вторую толку дать не могу, ПОМОГИте Пожалуйста! |
|||
|
||||
| bems |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: 0 Всего: 88 |
Для домашних заданий, курсовых, существует "Центр Помощи".
Тема перенесена! -------------------- Обижено школьников: 8 |
|||
|
||||
| Данкинг |
|
|||
![]() Yersinia pestis ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 8302 Регистрация: 7.11.2006 Где: მოსკოვი Репутация: нет Всего: 130 |
-------------------- There's nothing left but silent epitaphs. |
|||
|
||||
| world |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 133 Регистрация: 2.10.2009 Где: Харьков Репутация: 6 Всего: 12 |
Ряд вопросов
- Что за игра? (Как я понял с помощью гула игра по типу "Найди пару", правильно?, впервые просто сталкиваюсь с таким названием) -
Вам нужно разобрать обший алгоритм или именно, то, что есть у Вас. Если второе, то без кода мы Вам вряд ли чем-нибудь поможем. - Вы сделали половину. Я, как и остальные пользователи сообщества, увы не владею экстрасенсорными способностями, а жаль конечно И если Вы ответите на эти вопросы, Вам обязательно помогут на форуме. --------------------
Say what you mean, and mean what you say. Robert Wilson Cody |
|||
|
||||
| Coфико |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 21.5.2010 Репутация: нет Всего: нет |
unit Unit1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, Buttons, Grids; type TForm1 = class(TForm) Button1: TButton; Button2: TButton; Button3: TButton; Button4: TButton; Panel1: TPanel; StaticText1: TStaticText; Timer1: TTimer; Timer2: TTimer; Panel2: TPanel; StaticText2: TStaticText; Panel3: TPanel; Timer3: TTimer; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button3Click(Sender: TObject); procedure Button4Click(Sender: TObject); procedure ButOnClick(Sender: TObject); procedure DragDr(Sender, Source: TObject; X, Y: Integer); procedure massrandom(t,k,n:integer); procedure Timerstart(Sender: TObject); procedure Timer1Timer(Sender: TObject); procedure Timer2Timer(Sender: TObject); procedure Panel3DragOver(Sender, Source: TObject; X, Y: Integer; State: TDragState; var Accept: Boolean); private { Private declarations } public { Public declarations } end; var Form1: TForm1; but: TBitBtn; time: TTimer; i,j,x,y,k,n,tag1,tag2,tag3,kn,t,sec,s,kol,min,sh: integer; z: array[1..10,1..10] of integer; Ctrl: array[1..40] of integer; implementation {$R *.dfm} procedure TForm1.massrandom; begin randomize; for i :=1 to t do //заполнение массива от i до кол-ва "троек" картинок begin j:=0; repeat begin x:=random(k)+1; //k и n - высота и ширина матрицы y:=random(n)+1; if z[x,y]=0 then begin j:=j+1; z[x,y]:=i; end; end; until (z[x,y]<>0) and (j=3); end; end; procedure TForm1.Button1Click(Sender: TObject); begin t:=8; k:=5; n:=5; sh:=t*3+1; massrandom(t,k,n); for i :=1 to 5 do for j:=1 to 5 do begin But:=TBitBtn.Create(Form1); But.Parent:=form1; but.Width:=50; but.Height:=50; but.Left:=j*50+160; but.Top:=i*50+20; but.OnClick:=form1.ButOnClick; but.Tag:=z[i,j]; end; Button1.Free; Button2.Free; Button3.Free; Button4.Free; time:=Ttimer.Create(Form1); time.OnTimer:=form1.Timerstart; time.Interval:=1000; kol:=StrToInt(panel2.Caption); end; procedure TForm1.Button2Click(Sender: TObject); begin t:=9; k:=4; n:=7; sh:=t*3+1; massrandom(t,k,n); for i :=1 to 4 do for j:=1 to 7 do begin But:=TBitBtn.Create(Form1); But.Parent:=form1; but.Width:=50; but.Height:=50; but.Left:=j*50+100; but.Top:=i*50+20; but.OnClick:=form1.ButOnClick; but.Tag:=z[i,j]; end; Button1.Free; Button2.Free; Button3.Free; Button4.Free; time:=Ttimer.Create(Form1); time.OnTimer:=form1.Timerstart; time.Interval:=1000; kol:=StrToInt(panel2.Caption); end; procedure TForm1.Button3Click(Sender: TObject); begin t:=13; k:=5; n:=8; sh:=t*3+1; massrandom(t,k,n); for i :=1 to 5 do for j:=1 to 8 do begin But:=TBitBtn.Create(Form1); But.Parent:=form1; but.Width:=50; but.Height:=50; but.Left:=j*50+100; but.Top:=i*50+20; but.OnClick:=form1.ButOnClick; but.Tag:=z[i,j]; end; Button1.Free; Button2.Free; Button3.Free; Button4.Free; time:=Ttimer.Create(Form1); time.OnTimer:=form1.Timerstart; time.Interval:=1000; kol:=StrToInt(panel2.Caption); end; procedure TForm1.Button4Click(Sender: TObject); begin t:=16; k:=7; n:=7; sh:=t*3+1; massrandom(t,k,n); for i :=1 to k do for j:=1 to n do begin But:=TBitBtn.Create(Form1); But.Parent:=form1; but.Width:=50; but.Height:=50; but.Left:=j*50+100; but.Top:=i*50+20; but.OnClick:= Form1.ButOnClick; but.Tag:=z[i,j]; end; Button1.Free; Button2.Free; Button3.Free; Button4.Free; time:=Ttimer.Create(Form1); time.OnTimer:=form1.Timerstart; time.Interval:=1000; kol:=StrToInt(panel2.Caption); end; procedure TForm1.ButOnClick(Sender: TObject); begin (sender as tbitbtn).Glyph.LoadFromFile(inttostr((sender as tbitbtn).tag)+'.bmp'); kn:=kn+1; if kn=1 then tag1:=(sender as tbitbtn).Tag; if kn=2 then tag2:=(sender as tbitbtn).Tag; if kn=3 then begin tag3:=(sender as tbitbtn).Tag; for k:=0 to form1.ControlCount+1 do if (form1.Components[k] is tbitbtn) and ((form1.Components[k] as tbitbtn).Glyph.Empty=true) then (form1.Components[k] as tbitbtn).Enabled:=false; end; if kn=3 then if (tag1=tag2) and (tag1=tag3) then form1.Timer2.Enabled:=true else form1.timer1.Enabled:=true; end; procedure Tform1.Timerstart(Sender: TObject); //таймер игрового времени begin sec:=sec+1; if sec=60 then begin sec:=0; min:=min+1; end; form1.Panel1.Caption:=Format('%.2d', [min])+format(':%.2d', [sec]); kol:=kol-1; вот с этой строчки мне нужно объяснение каждой процедуры. Заранее вас благодарю!!! if kol <0 then begin kol:=0; form1.Panel2.Caption:=inttostr(kol); Panel3.Caption:='ВЫ ПРОИГРАЛИ'; sec:=sec-1; for k:=1 to form1.ControlCount+2 do if (form1.Components[k] is tbitbtn) then (form1.Components[k] as tbitbtn).Enabled:=false; end else form1.Panel2.Caption:=inttostr(kol); end; procedure TForm1.Timer1Timer(Sender: TObject); begin s:=s+1; if s=1 then begin for k:=0 to form1.ComponentCount-1 do if form1.Components[k] is tbitbtn then (form1.Components[k] as tbitbtn).Glyph:=nil; s:=0; tag:=0; //количество очков if kol <0 then begin kol:=0; form1.Panel2.Caption:=inttostr(kol); end else form1.Panel2.Caption:=inttostr(kol); timer1.Enabled:=false; kn:=0; for k:=0 to form1.ControlCount+1 do if (form1.Components[k] is tbitbtn) then (form1.Components[k] as tbitbtn).Enabled:=true; end; end; procedure TForm1.Timer2Timer(Sender: TObject); //таймер для 3х одинаковых кнопок begin s:=s+1; if s=1 then begin for k:=0 to form1.ComponentCount-1 do if (form1.Components[k] is tbitbtn) and ((form1.Components[k] as tbitbtn).Glyph.Empty=false) then (form1.Components[k] as tbitbtn).Visible:=false; //если кнопки непустые, убираем их s:=0; kol:=kol+90; //количество очков form1.Panel2.Caption:=inttostr(kol); tag:=0; timer2.Enabled:=false; kn:=0; sh:=sh-3; for k:=0 to form1.ControlCount+1 do //активируем выключенные кнопки if (form1.Components[k] is tbitbtn) then (form1.Components[k] as tbitbtn).Enabled:=true; if sh=1 then for k:=0 to form1.ControlCount+1 do if (form1.Components[k] is tbitbtn) then begin (form1.Components[k] as tbitbtn).Glyph.LoadFromFile('0.bmp'); (form1.Components[k] as tbitbtn).OnDragDrop:=form1.DragDr; (form1.Components[k] as tbitbtn).DragMode:=dmAutomatic; form1.Panel3.Caption:='!!!ПОБЕДА!!!'; time.Enabled:=false; end; end; end; procedure Tform1.DragDr(Sender, Source: TObject; X, Y: Integer); begin (Sender as Tbitbtn).DragCursor:=crDrag; end; procedure TForm1.Panel3DragOver(Sender, Source: TObject; X, Y: Integer; State: TDragState; var Accept: Boolean); begin Accept:=true; form1.Panel3.Caption:='!!!ПОБЕДА!!!'; for k:=0 to form1.ControlCount+1 do if (form1.Components[k] is tbitbtn) then (form1.Components[k] as tbitbtn).Visible:=false; time.Enabled:=false; end; end. |
|||
|
||||
![]()
|
| Правила форума "Центр помощи" | |
|
|
ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Более подробно с правилами данного раздела Вы можете ознакомится в этой теме. Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Центр помощи | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |