Mega Code Archive

 
Categories / Delphi / Games
 

Sayı bulma oyunu [4 haneli]

//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.