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, MessagesSysUtilsClasses

  GraphicsControlsFormsDialogsStdCtrlsComCtrls;

type
  TfmTalalo = class(TForm)
    edATEdit;
    edBTEdit;
    btNagyobbTButton;
    btEgyenloTButton;
    btKisebbTButton;
    btVegeTButton;
    lbJatekosTLabel;
    lbGepTLabel;
    pbJatekosTProgressBar;
    pbGepTProgressBar;
    lbEredmenyTLabel;
    lbJTLabel;
    lbGTLabel;
    btUjTButton;
    Procedure Ki;
    Procedure Be;
    Procedure Ertekelo;
    procedure btVegeClick(SenderTObject);
    procedure FormCreate(SenderTObject);
    procedure btNagyobbClick(SenderTObject);
    procedure btEgyenloClick(SenderTObject);
    procedure btKisebbClick(SenderTObject);
    procedure btUjClick(SenderTObject);
  private
    Private declarations }
  public
    Public declarations }
  end;

var
  fmTalaloTfmTalalo;
  A, B, J, G: Integer;
  VegeBoolean;
  Gy: Byte;

Const N: Byte=20;

implementation

{$R *.DFM}

procedure TfmTalalo.btVegeClick(SenderTObject);
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(SenderTObject);
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(SenderTObject);
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(SenderTObject);
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(SenderTObject);
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(SenderTObject);
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.