Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- unit Unit1;
- {$mode objfpc}{$H+}
- interface
- uses
- Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, ExtCtrls,
- StdCtrls, CRT;
- type
- { TfrmPrincipal }
- TfrmPrincipal = class(TForm)
- Button1: TButton;
- Image1: TImage;
- btnVerde: TPanel;
- btnAmarelo: TPanel;
- btnVermelho: TPanel;
- btnAzul: TPanel;
- lblfase2: TLabel;
- lblVel: TLabel;
- lblFase: TLabel;
- lblVelocidade: TLabel;
- procedure btnAmareloClick(Sender: TObject);
- procedure btnAzulClick(Sender: TObject);
- procedure btnVerdeClick(Sender: TObject);
- procedure btnVermelhoClick(Sender: TObject);
- procedure Button1Click(Sender: TObject);
- procedure FormShow(Sender: TObject);
- procedure Timer1Timer(Sender: TObject);
- procedure geranum();
- procedure liga();
- procedure muda(var n,t:integer);
- procedure comumbotoes();
- function verifica(): boolean;
- private
- public
- end;
- var
- frmPrincipal: TfrmPrincipal;
- seq : array[1..6 , 1..6] of integer;
- i : integer;
- vel : integer;//velocidade
- fase: integer;
- contador :integer;
- tempo: integer;
- sequencia :integer;
- usuario : array[1..6] of integer;
- implementation
- {$R *.lfm}
- { TfrmPrincipal }
- function TfrmPrincipal.verifica(): boolean;
- var
- c,l,s : integer;
- begin
- s := 0;
- l:= fase;
- for c:=0 to contador do
- begin
- if (seq[l][c] <> usuario[c]) then
- begin
- s := 1;
- result := FALSE;
- break;
- end;
- end;
- if (s = 0) then
- begin
- result := TRUE;
- end;
- end;
- procedure TfrmPrincipal.comumbotoes();
- begin
- if (sequencia = contador) then
- begin
- if (verifica()) then
- begin
- contador+=1;
- if (contador mod 6 =0) then
- begin
- sound(5000);
- delay(2000);
- nosound;
- ShowMessage ( 'Parabéns! Nova fase!' ) ;
- fase+=1;
- vel+=1;
- tempo-=100;
- if (tempo < 100) then
- begin
- tempo := 500;
- fase := 0;
- end;
- contador := 0;
- sequencia := 0;
- liga;
- end
- else
- begin
- sequencia := 0;
- ShowMessage ( 'Você acertou' ) ;
- liga;
- end;
- end
- else
- begin
- sequencia := 0;
- ShowMessage ( 'Você errou' ) ;
- liga;
- end;
- end
- else
- begin
- sequencia+=1;
- end;
- end;
- procedure TfrmPrincipal.muda(var n,t:integer);
- begin
- Case n Of
- 0: begin
- btnAmarelo.color := clYellow; //amarelo aceso
- btnAzul.Color:= $00623100; //azul apagado
- btnVermelho.Color:= $00000084; //vermelho apagado
- btnVerde.Color:= $00007500; //verde apagado
- repaint;
- sound(3000); // Quanto maior, mais agudo
- delay(t);
- nosound;
- end;
- 1:
- begin
- btnAzul.Color:= $00FF972F; //azul aceso
- btnVermelho.Color:= $00000084; //vermelho apagado
- btnVerde.Color:= $00007500; //verde apagado
- btnAmarelo.color := $0000C6C6; //amarelo apagado
- repaint;
- sound(2500); // Quanto maior, mais agudo
- delay(t);
- nosound;
- end;
- 2:
- begin
- btnVermelho.Color:= clRed; //vermelho aceso
- btnVerde.Color:= $00007500; //verde apagado
- btnAmarelo.color := $0000C6C6; //amarelo apagado
- btnAzul.Color:= $00623100; //azul apagado
- repaint;
- sound(2000); // Quanto maior, mais agudo
- delay(t);
- nosound;
- end;
- 3:
- begin
- btnVerde.Color:= $0000F000; //aceso
- btnAmarelo.color := $0000C6C6; //amarelo apagado
- btnAzul.Color:= $00623100; //azul apagado
- btnVermelho.Color:= $00000084; //vermelho apagado
- repaint;
- sound(1500); // Quanto maior, mais agudo
- delay(t);
- nosound;
- end;
- End;
- end;
- procedure TfrmPrincipal.liga();
- var
- j : integer;
- begin
- for j:=0 to contador do
- begin
- muda(seq[fase][j], tempo);
- end;
- btnAmarelo.color := $0000C6C6; //amarelo apagado
- btnAzul.Color:= $00623100; //azul apagado
- btnVermelho.Color:= $00000084; //vermelho apagado
- btnVerde.Color:= $00007500; //verde apagado
- lblFase.Caption:=inttostr(fase);
- lblVel.Caption:=inttostr(vel);
- end;
- procedure TfrmPrincipal.geranum();
- var
- lin, col : integer;
- num : integer;
- begin
- Randomize;
- (* lblFase2.Caption := '';*)
- (* lblFase.Caption := '';*)
- for lin := 0 to 4 do
- begin
- for col := 0 to 4 do
- begin
- num := Random(4);
- (* lblFa.Caption:=lblFa.Caption + inttostr(num);*)
- while (num=seq[lin][col-1]) do
- begin
- num := Random(4);
- (* lblFase.Caption:=lblFase.Caption + inttostr(num);*)
- end;
- seq[lin][col] := num;
- end;
- end;
- end;
- procedure TfrmPrincipal.Timer1Timer(Sender: TObject);
- begin
- end;
- procedure TfrmPrincipal.FormShow(Sender: TObject);
- begin
- i:=0;
- fase:=0;
- vel:=0;
- geranum();
- contador:=0;
- tempo:=500;
- sequencia:=0;
- end;
- procedure TfrmPrincipal.Button1Click(Sender: TObject);
- begin
- contador :=0;
- sequencia :=0;
- liga();
- end;
- procedure TfrmPrincipal.btnAmareloClick(Sender: TObject);
- begin
- btnAmarelo.color := clYellow; //amarelo aceso
- repaint;
- sound(3000); // Quanto maior, mais agudo
- delay(500);
- nosound;
- btnAmarelo.color := $0000C6C6; //amarelo apagado
- usuario[contador] := 0;
- comumbotoes();
- end;
- procedure TfrmPrincipal.btnAzulClick(Sender: TObject);
- begin
- btnAzul.color := $00FF972F; //azul aceso
- repaint;
- sound(2500);
- delay(500);
- nosound;
- btnAzul.color := $00623100; //azul apagado
- usuario[contador] := 1;
- if (sequencia = contador) then
- begin
- if (verifica()) then
- begin
- contador+=1;
- if (contador mod 6 =0) then
- begin
- ShowMessage ( 'Nova fase!' ) ;
- sound(1500);
- delay(3000);
- fase+=1;
- vel+=1;
- tempo-=100;
- if (tempo < 100) then
- begin
- tempo := 500;
- fase := 0;
- end;
- contador := 0;
- end;
- sequencia := 0;
- ShowMessage ( 'Você acertou' ) ;
- liga;
- end
- else
- begin
- sequencia := 0;
- ShowMessage ( 'Você errou' ) ;
- liga;
- end;
- end
- else
- begin
- sequencia+=1;
- end;
- end;
- procedure TfrmPrincipal.btnVerdeClick(Sender: TObject);
- begin
- btnVerde.color := $0000F000; //verde aceso
- repaint;
- sound(1500);
- delay(500);
- nosound;
- btnVerde.color := $00007500; //verde apagado
- usuario[contador] := 3;
- comumbotoes();
- end;
- procedure TfrmPrincipal.btnVermelhoClick(Sender: TObject);
- begin
- btnVermelho.color := clRed; //vermelho aceso
- repaint;
- sound(2000);
- delay(500);
- nosound;
- btnVermelho.color := $00000084; //vermelho apagado
- usuario[contador] := 2;
- comumbotoes();
- end;
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement