Találó
Ez a program egy
egyszerű kis játékot tartalmaz. A gép által kitalált két szám közül az elsőt
megmutatja és tippelhetünk, hogy másodikhoz nagyságát tekintve hogyan
viszonyul. A gép ellen játszunk, minden jó válasz egy pontot érnek. Az győz,
aki előbb éri el a 20-at. Ez a program inkább a Delphi
lehetőségei bemutatását szolgálja, mintsem komoly
játéklehetőséget adna.
A program futási képe:
A program listája:
unit UTalalo;
interface
uses
Windows, Messages, SysUtils, Classes,
Graphics, Controls, Forms, Dialogs, StdCtrls, ComCtrls;
type
TfmTalalo = class(TForm)
edA: TEdit;
edB: TEdit;
btNagyobb: TButton;
btEgyenlo: TButton;
btKisebb: TButton;
btVege: TButton;
lbJatekos: TLabel;
lbGep: TLabel;
pbJatekos: TProgressBar;
pbGep: TProgressBar;
lbEredmeny: TLabel;
lbJ: TLabel;
lbG: TLabel;
btUj: TButton;
Procedure Ki;
Procedure Be;
Procedure Ertekelo;
procedure btVegeClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure btNagyobbClick(Sender: TObject);
procedure btEgyenloClick(Sender: TObject);
procedure btKisebbClick(Sender: TObject);
procedure btUjClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
fmTalalo: TfmTalalo;
A, B, J, G: Integer;
Vege: Boolean;
Gy: Byte;
Const N: Byte=20;
implementation
{$R *.DFM}
procedure TfmTalalo.btVegeClick(Sender: TObject);
begin
Close;
end;
Procedure TfmTalalo.Ki;
Begin
btNagyobb.Enabled:= False;
btEgyenlo.Enabled:= False;
btKisebb.Enabled:= False;
End;
Procedure TfmTalalo.Be;
Begin
btNagyobb.Enabled:= True;
btEgyenlo.Enabled:= True;
btKisebb.Enabled:= True;
End;
Procedure TfmTalalo.Ertekelo;
Begin
If J=N Then Gy:= 1;
If G=N Then Gy:= 2;
With lbEredmeny Do
If Gy<>0 Then
Begin
Vege:= True;
Case Gy Of
1: Caption:= 'Győztél!';
2: Caption:= 'Győztem!';
End;
Visible:= True;
btUj.Visible:= True;
End;
End;
procedure TfmTalalo.FormCreate(Sender: TObject);
begin
Randomize;
A:= Random(6)+1;
edA.Text:= IntToStr(A);
J:= 0;
G:= 0;
Gy:= 0;
Vege:= False;
lbEredmeny.Visible:= False;
btUj.Visible:= False;
end;
procedure TfmTalalo.btNagyobbClick(Sender: TObject);
begin
If Vege Then Exit;
B:= Random(6)+1;
edB.Text:= IntToStr(B);
edB.Repaint;
If A>B Then
Begin
Inc(J); pbJatekos.StepIt;
lbJ.Caption:= IntToStr(J);
End Else
Begin
Inc(G); pbGep.StepIt;
lbG.Caption:= IntToStr(G);
End;
Ki;
Sleep(1000);
Be;
A:= Random(6)+1;
edA.Text:= IntToStr(A);
edB.Text:= '';
Ertekelo;
end;
procedure TfmTalalo.btEgyenloClick(Sender: TObject);
begin
If Vege Then Exit;
B:= Random(6)+1;
edB.Text:= IntToStr(B);
edB.Repaint;
If A=B Then
Begin
Inc(J); pbJatekos.StepIt;
lbJ.Caption:= IntToStr(J);
End Else
Begin
Inc(G); pbGep.StepIt;
lbG.Caption:= IntToStr(G);
End;
Ki;
Sleep(1000);
Be;
A:= Random(6)+1;
edA.Text:= IntToStr(A);
edB.Text:= '';
Ertekelo;
end;
procedure TfmTalalo.btKisebbClick(Sender: TObject);
begin
If Vege Then Exit;
B:= Random(6)+1;
edB.Text:= IntToStr(B);
edB.Repaint;
If A<B Then
Begin
Inc(J); pbJatekos.StepIt;
lbJ.Caption:= IntToStr(J);
End Else
Begin
Inc(G); pbGep.StepIt;
lbG.Caption:= IntToStr(G);
End;
Ki;
Sleep(1000);
Be;
A:= Random(6)+1;
edA.Text:= IntToStr(A);
edB.Text:= '';
Ertekelo;
end;
procedure TfmTalalo.btUjClick(Sender: TObject);
begin
J:= 0; lbJ.Caption:= '0';
G:= 0; lbG.Caption:= '0';
Gy:= 0;
Vege:= False;
btUj.Visible:= False;
lbEredmeny.Visible:= False;
pbJatekos.Position:= 0;
pbGep.Position:= 0;
A:= Random(6)+1;
edA.Text:= IntToStr(A);
end;
end.