Sayısal Loto

Bu programda amaç, 1-49 arasında 6 farklı rakamlar belirtilen çekiliş dizisinde tutulmaktadır. Girilen kolon sayısına göre bilgisayar rasgele 1 -49 arasında 6 farklı rakamlar oynamaktadır. Bu oynanan kolonları çeklişle karşılaştırmaktır.

Bu programda amaç, 1-49 arasında 6 farklı rakamlar belirtilen çekiliş dizisinde tutulmaktadır. Girilen kolon sayısına göre bilgisayar rasgele 1 -49 arasında 6 farklı rakamlar oynamaktadır. Bu oynanan kolonları çeklişle karşılaştırmaktır.

Ekran çıktısı:





Unit Unit1;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Dialogs, StdCtrls, Buttons, ExtCtrls;typeTForm1 = class(TForm)Edit1: TEdit;Label1: TLabel;ListBox1: TListBox;Edit2: TEdit;Label2: TLabel;Label3: TLabel;Label4: TLabel;Label5: TLabel;Label6: TLabel;Label7: TLabel;Label8: TLabel;Label9: TLabel;Label10: TLabel;Label11: TLabel;Label12: TLabel;Label13: TLabel;Label14: TLabel;Timer1: TTimer;SpeedButton1: TSpeedButton;SpeedButton2: TSpeedButton;Timer2: TTimer;Label15: TLabel;Label16: TLabel;procedure FormCreate(Sender: TObject);procedure Timer1Timer(Sender: TObject);procedure SpeedButton1Click(Sender: TObject);procedure SpeedButton2Click(Sender: TObject);procedure Timer2Timer(Sender: TObject);procedure Label15Click(Sender: TObject);procedure FormMouseMove(Sender: TObject; Shift: TShiftState; X,Y: Integer);procedure Label15MouseMove(Sender: TObject; Shift: TShiftState; X,Y: Integer);procedure Label15MouseDown(Sender: TObject; Button: TMouseButton;Shift: TShiftState; X, Y: Integer);private{ Private declarations }public{ Public declarations }end;varForm1: TForm1;a:array[1..6] of integer;//Çekiliş dizisib:array[1..6] of integer;//Kolonlar dizisisayac,seffaf:integer;implementation{$R *.dfm}procedure TForm1.FormCreate(Sender: TObject);beginAlphaBlend:=true;end;procedure TForm1.Timer1Timer(Sender: TObject);beginseffaf:=seffaf+5;AlphaBlendValue:=seffaf;if seffaf=255 thentimer1.Enabled:=false;end;procedure TForm1.SpeedButton1Click(Sender: TObject);vari,j,deger:integer;beginrandomize;//Bilgisayar, program açıldığında aynı rakamları ele almasın diye.a[1]:=random(49)+1;//Çekiliş dizisine 1-49 arasında 6 farklı rakam atanıyor.a[2]:=random(49)+1;a[3]:=random(49)+1;a[4]:=random(49)+1;a[5]:=random(49)+1;a[6]:=random(49)+1;for i:=1 to 6 dofor j:=i+1 to 6 doif a=a[j] then a:=a+1;//Eğer bilgisayar rasgele aynı rakamlar tutar ise o rakamı bir arttır.for i:=1 to 6 dofor j:=i+1 to 6 doif a>a[j] then//Sıralama algoritması.begindeger:=a;a:=a[j];a[j]:=deger;end;edit1.Text:=inttostr(a[1])+? ?+inttostr(a[2])+? ?+inttostr(a[3])+? ?+inttostr(a[4])+? ?+inttostr(a[5])+? ?+inttostr(a[6]);//Çekiliş rakamları edit bileşenine yazdırılıyor.end;procedure TForm1.SpeedButton2Click(Sender: TObject);vari,j,deger,k:integer;beginlistbox1.Clear;//Önceden yazdırılan kolonlar bir daha listbox?da görünmesin.label9.Caption:=?0?;label10.Caption:=?0?;label11.Caption:=?0?;label12.Caption:=?0?;label13.Caption:=?0?;label14.Caption:=?0?;for k:=1 to strtoint(edit2.text) do//Belirtilen kolon sayısına göre dön.beginListBox1.Refresh;//Listbox?ı yenile, gözle görmemizi sağlar.label9.Refresh;label10.Refresh;label11.Refresh;label12.Refresh;label13.Refresh;label14.Refresh;randomize;b[1]:=random(49)+1;//Kolonlar dizisine 1-49 arasında 6 farklı rakamlar atanıyor.b[2]:=random(49)+1;b[3]:=random(49)+1;b[4]:=random(49)+1;b[5]:=random(49)+1;b[6]:=random(49)+1;for i:=1 to 6 dofor j:=i+1 to 6 doif b=b[j] then b:=b+1;//Kolondaki sayılardan biri eşit ise bir arttır.for i:=1 to 6 dofor j:=i+1 to 6 doif b>b[j] then//Sıralama algoritması.begindeger:=b;b:=b[j];b[j]:=deger;end;for i:=1 to 6 dofor j:=1 to 6 doif a=b[j] then sayac:=sayac+1;//Çekiliş rakamları Kolonlar rakamlarından birine eşit ise sayacımızı bir arttır.if sayac=1 then begin label9.Caption:=inttostr(strtoint(label9.Caption)+1); sayac:=0; end;//Eğer sayaç bir ise o kolonda bir tutturmuştur.if sayac=2 then begin label10.Caption:=inttostr(strtoint(label10.Caption)+1); sayac:=0; end;if sayac=3 then begin label11.Caption:=inttostr(strtoint(label11.Caption)+1); sayac:=0; end;if sayac=4 then begin label12.Caption:=inttostr(strtoint(label12.Caption)+1); sayac:=0; end;if sayac=5 then begin label13.Caption:=inttostr(strtoint(label13.Caption)+1); sayac:=0; end;if sayac=6 then begin label14.Caption:=inttostr(strtoint(label14.Caption)+1); sayac:=0; end;ListBox1.Items.Add(inttostr(k)+? ? ?+inttostr(b[1])+? ?+inttostr(b[2])+? ?+inttostr(b[3])+? ?+inttostr(b[4])+? ?+inttostr(b[5])+? ?+inttostr(b[6]));//Kolonlarımız listbox bileşinine yazdırılıyor.end;end;//Alt satırda bulunan kod kısımları tamamen görselliğe dayalıdır.procedure TForm1.Timer2Timer(Sender: TObject);beginseffaf:=seffaf-5;AlphaBlendValue:=seffaf;if seffaf=0 thenbegintimer1.Enabled:=false;halt;end;end;procedure TForm1.Label15Click(Sender: TObject);begintimer2.Enabled:=true;end;procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,Y: Integer);beginlabel15.Font.Color:=clred;end;procedure TForm1.Label15MouseMove(Sender: TObject; Shift: TShiftState; X,Y: Integer);beginlabel15.Font.Color:=$006C6CFF;end;procedure TForm1.Label15MouseDown(Sender: TObject; Button: TMouseButton;Shift: TShiftState; X, Y: Integer);beginlabel15.Font.Color:=$000000B0;end;end.Unit Unit1;



interface



uses



Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, Buttons, ExtCtrls;



type

TForm1 = class(TForm)

Edit1: TEdit;

Label1: TLabel;

ListBox1: TListBox;

Edit2: TEdit;

Label2: TLabel;

Label3: TLabel;

Label4: TLabel;

Label5: TLabel;

Label6: TLabel;

Label7: TLabel;

Label8: TLabel;

Label9: TLabel;

Label10: TLabel;

Label11: TLabel;

Label12: TLabel;

Label13: TLabel;

Label14: TLabel;

Timer1: TTimer;

SpeedButton1: TSpeedButton;

SpeedButton2: TSpeedButton;

Timer2: TTimer;

Label15: TLabel;

Label16: TLabel;

procedure FormCreate(Sender: TObject);

procedure Timer1Timer(Sender: TObject);

procedure SpeedButton1Click(Sender: TObject);

procedure SpeedButton2Click(Sender: TObject);

procedure Timer2Timer(Sender: TObject);

procedure Label15Click(Sender: TObject);

procedure FormMouseMove(Sender: TObject; Shift: TShiftState; X,

Y: Integer);

procedure Label15MouseMove(Sender: TObject; Shift: TShiftState; X,

Y: Integer);

procedure Label15MouseDown(Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);

private

{ Private declarations }

public

{ Public declarations }

end;

var



Form1: TForm1;

a:array[1..6] of integer;//Çekiliş dizisi

b:array[1..6] of integer;//Kolonlar dizisi

sayac,seffaf:integer;



implementation



{$R *.dfm}



procedure TForm1.FormCreate(Sender: TObject);

begin

AlphaBlend:=true;

end;



procedure TForm1.Timer1Timer(Sender: TObject);

begin

seffaf:=seffaf+5;

AlphaBlendValue:=seffaf;

if seffaf=255 then

timer1.Enabled:=false;

end;



procedure TForm1.SpeedButton1Click(Sender: TObject);

var

i,j,deger:integer;

begin

randomize;//Bilgisayar, program açıldığında aynı rakamları ele almasın diye.

a[1]:=random(49)+1;//Çekiliş dizisine 1-49 arasında 6 farklı rakam atanıyor.

a[2]:=random(49)+1;

a[3]:=random(49)+1;

a[4]:=random(49)+1;

a[5]:=random(49)+1;

a[6]:=random(49)+1;

for i:=1 to 6 do

for j:=i+1 to 6 do

if a=a[j] then a:=a+1;//Eğer bilgisayar rasgele aynı rakamlar tutar ise o rakamı bir arttır.

for i:=1 to 6 do

for j:=i+1 to 6 do

if a>a[j] then//Sıralama algoritması.

begin

deger:=a;

a:=a[j];

a[j]:=deger;

end;

edit1.Text:=inttostr(a[1])+? ?+inttostr(a[2])+? ?+inttostr(a[3])+? ?+inttostr(a[4])+? ?+inttostr(a[5])+? ?+inttostr(a[6]);//Çekiliş rakamları edit bileşenine yazdırılıyor.

end;



procedure TForm1.SpeedButton2Click(Sender: TObject);

var

i,j,deger,k:integer;

begin

listbox1.Clear;//Önceden yazdırılan kolonlar bir daha listbox?da görünmesin.

label9.Caption:=?0?;

label10.Caption:=?0?;

label11.Caption:=?0?;

label12.Caption:=?0?;

label13.Caption:=?0?;

label14.Caption:=?0?;

for k:=1 to strtoint(edit2.text) do//Belirtilen kolon sayısına göre dön.

begin

ListBox1.Refresh;//Listbox?ı yenile, gözle görmemizi sağlar.

label9.Refresh;

label10.Refresh;

label11.Refresh;

label12.Refresh;

label13.Refresh;

label14.Refresh;

randomize;

b[1]:=random(49)+1;//Kolonlar dizisine 1-49 arasında 6 farklı rakamlar atanıyor.

b[2]:=random(49)+1;

b[3]:=random(49)+1;

b[4]:=random(49)+1;

b[5]:=random(49)+1;

b[6]:=random(49)+1;

for i:=1 to 6 do

for j:=i+1 to 6 do

if b=b[j] then b:=b+1;//Kolondaki sayılardan biri eşit ise bir arttır.

for i:=1 to 6 do

for j:=i+1 to 6 do

if b>b[j] then//Sıralama algoritması.

begin

deger:=b;

b:=b[j];

b[j]:=deger;

end;

for i:=1 to 6 do

for j:=1 to 6 do

if a=b[j] then sayac:=sayac+1;//Çekiliş rakamları Kolonlar rakamlarından birine eşit ise sayacımızı bir arttır.

if sayac=1 then begin label9.Caption:=inttostr(strtoint(label9.Caption)+1); sayac:=0; end;//Eğer sayaç bir ise o kolonda bir tutturmuştur.

if sayac=2 then begin label10.Caption:=inttostr(strtoint(label10.Caption)+1); sayac:=0; end;

if sayac=3 then begin label11.Caption:=inttostr(strtoint(label11.Caption)+1); sayac:=0; end;

if sayac=4 then begin label12.Caption:=inttostr(strtoint(label12.Caption)+1); sayac:=0; end;

if sayac=5 then begin label13.Caption:=inttostr(strtoint(label13.Caption)+1); sayac:=0; end;

if sayac=6 then begin label14.Caption:=inttostr(strtoint(label14.Caption)+1); sayac:=0; end;

ListBox1.Items.Add(inttostr(k)+? ? ?+inttostr(b[1])+? ?+inttostr(b[2])+? ?+inttostr(b[3])+? ?+inttostr(b[4])+? ?+inttostr(b[5])+? ?+inttostr(b[6]));//Kolonlarımız listbox bileşinine yazdırılıyor.

end;

end;



//Alt satırda bulunan kod kısımları tamamen görselliğe dayalıdır.



procedure TForm1.Timer2Timer(Sender: TObject);

begin

seffaf:=seffaf-5;

AlphaBlendValue:=seffaf;

if seffaf=0 then

begin

timer1.Enabled:=false;

halt;

end;

end;



procedure TForm1.Label15Click(Sender: TObject);

begin

timer2.Enabled:=true;

end;



procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,

Y: Integer);

begin

label15.Font.Color:=clred;

end;



procedure TForm1.Label15MouseMove(Sender: TObject; Shift: TShiftState; X,

Y: Integer);

begin

label15.Font.Color:=$006C6CFF;

end;



procedure TForm1.Label15MouseDown(Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);

begin

label15.Font.Color:=$000000B0;

end;



end.

  • Etiketler;
Yorum Yaz

Yorum yazabilmek için üye girişi yapmanız gerekiyor!

Yukarı Git