Games Delphi

//Lisede çok oynadığımız, 4 haneli sayıdan yeri tutan + ve yeri tutmayan - sayısını
//kullanarak karşı kişinin sayısını bulma oyunu
//MaskEdit1'in EditMask: "!9999;0;+" olabilir...
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Mask, Buttons;
type
TForm1 = class(TForm)
MaskEdit1: TMaskEdit;
StaticText1: TStaticText;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
StaticText2: TStaticText;
StaticText3: TStaticText;
StaticText4: TStaticText;
BitBtn3: TBitBtn;
CheckBox1: TCheckBox;
ListBox1: TListBox;
procedure BitBtn2Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure BitBtn3Click(Sender: TObject);
procedure MaskEdit1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
deneme: integer;
dizi:array [1..4] of integer;
dizi2:array [0..9] of integer;
sayac,kere: integer;
implementation
{$R *.dfm}
procedure tusdoldur;
var a:integer;
begin
if form1.CheckBox1.Checked then
repeat
a:=random(10);
if dizi[sayac]=-1 then
begin
dizi[sayac]:=a;
inc(sayac);
end
else tusdoldur;
until sayac=5
else
repeat
a:=random(10);
if dizi2[a]=-1 then
begin
dizi[sayac]:=a;
dizi2[a]:=a;
inc(sayac);
end
else tusdoldur;
until sayac=5;
end;
procedure TForm1.BitBtn2Click(Sender: TObject);
begin
close
end;
procedure TForm1.FormCreate(Sender: TObject);
var i:integer;
begin
randomize;
deneme:=0;
kere:=1;
for i:=1 to 4 do dizi[i]:=-1;
for i:=0 to 9 do dizi2[i]:=-1;
sayac:=1;
tusdoldur;
end;
procedure TForm1.BitBtn1Click(Sender: TObject);
var kullanici:string;
bilinen, tutulanyer:byte;
begin
kullanici:=MaskEdit1.Text;
bilinen:=0;
tutulanyer:=0;
if (kullanici[1]=' ')or(kullanici[2]=' ')or(kullanici[3]=' ')or(kullanici[4]=' ') then
begin
StaticText2.Caption:='Hatalı Giriş';
exit;
end;
if ((kullanici[1]=kullanici[2])or(kullanici[1]=kullanici[3])or(kullanici[1]=kullanici[4])
or (kullanici[2]=kullanici[3]) or (kullanici[2]=kullanici[4]) or (kullanici[3]=kullanici[4]))
and (form1.CheckBox1.Checked=false) then begin
StaticText2.Caption:='Hatalı Giriş';
exit;
end;
staticText4.Caption:=inttostr(kere);
inc(kere);
StaticText2.Caption:='Kere';
if kullanici[1]=inttostr(dizi[1]) then inc(tutulanyer);
if kullanici[2]=inttostr(dizi[2]) then inc(tutulanyer);
if kullanici[3]=inttostr(dizi[3]) then inc(tutulanyer);
if kullanici[4]=inttostr(dizi[4]) then inc(tutulanyer);
if CheckBox1.Checked = false then begin
if (strtoint(kullanici[1]) in [dizi[2],dizi[3],dizi[4]]) then inc(bilinen);
if (strtoint(kullanici[2]) in [dizi[1],dizi[3],dizi[4]]) then inc(bilinen);
if (strtoint(kullanici[3]) in [dizi[1],dizi[2],dizi[4]]) then inc(bilinen);
if (strtoint(kullanici[4]) in [dizi[1],dizi[2],dizi[3]]) then inc(bilinen);
StaticText3.Caption:=inttostr(bilinen)+' - ; '+inttostr(tutulanyer)+' + ';
end
else
StaticText3.Caption:=inttostr(tutulanyer)+' + ';
ListBox1.Items.Add(maskedit1.text+ ' '+inttostr(bilinen)+' - ; '+inttostr(tutulanyer)+' + ' );
if tutulanyer=4 then begin
MaskEdit1.Enabled:=false;
StaticText2.Caption:='KAZANDIN';
end;
end;
procedure TForm1.BitBtn3Click(Sender: TObject);
var i:integer;
begin
deneme:=0;
kere:=1;
ListBox1.Clear;
MaskEdit1.Enabled:=true;
for i:=1 to 4 do dizi[i]:=-1;
for i:=0 to 9 do dizi2[i]:=-1;
sayac:=1;
tusdoldur;
MaskEdit1.Text:='';
StaticText4.Caption:='0';
StaticText2.Caption:='Kere';
StaticText3.Caption:='0 - ; 0 + ';
end;
procedure TForm1.MaskEdit1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key=VK_RETURN then BitBtn1.OnClick(self);
end;
end.