20 Kasım 2020 Cuma

Delphi - Sayı Tahmin Oyunu

 Merhaba, bugün sizlerle Delphi diliyle yazılmış bir sayı tahmin oyununu paylaşıyorum. Delphi pascal dilinin nesne tabanlı programlama diline dönüşmüş hali denebilir. Günümüzde en büyük rakibi olarak görülen c# dili kadar popüler olmasa da Sykpe, Navicat, Xampp gibi popüler uygulamalar  Delphi dile ile yazılmıştır. C# ile kıyaslandığında öne çıkan en büyük özelliği derleme hızının çok yüksek olmasıdır.  Delphi ile ilgili Türkçe kaynağın diğer dillere kıyasla düşük olduğu aşikar. Bu nedenle bu yazının ilgilenen kişilere faydalı olacağını düşünmekteyim. 

Uygulama Yapısı


Uygulamanın arka planında belirlenen sayılar arasından rastgele bir sayı tutuluyor. Kullanıcının hedefi verilen haklar içerisinde bu sayıyı tahmin etmek. Yapılan tahminlerden sonra kullanıcıya sayının tahmin edilen sayıdan küçük veya büyük olduğunu bildiren mesaj kutuları ekrana geliyor. Sizler çeşitli modifikasyonlarla bu yapıyı dilediğiniz gibi değiştirebilirsiniz. 

Sayı Tahmin Oyunu Delphi
Örnek Tasarım

Sayı tahmin oyunu Delphi
Yapılan Tahmin Sonrası Bilgilendirme

Kodlar


   
unit Sayitahmin;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Math, Vcl.Menus;

type
  TForm2 = class(TForm)
    Edit1: TEdit;
    Button1: TButton;
    Button2: TButton;
    Label1: TLabel;
    Label2: TLabel;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form2: TForm2;
  tut: Integer;
  hak:Integer;



implementation

{$R *.dfm}

procedure TForm2.Button1Click(Sender: TObject);
begin
  tut := Random(1024)+1;
  hak:=10;
  Label1.Caption:='Kalan Hak: '+IntToStr(hak);
  ShowMessage('1 ile 1024 arasında sayı giriniz.');
end;

procedure TForm2.Button2Click(Sender: TObject);
var
tahmin: Integer;
begin
  tahmin:=StrToInt(Edit1.Text);
  if tahmin=tut then
  begin
  ShowMessage('Tebrikler ' + IntToStr(hak)+'. hakkınız varken bildiniz.');
  Label1.Caption:='Kalan hak: 10';
  end

   else if tahmintut then begin
  Dec(hak);
  ShowMessage ('Küçük Sayı Giriniz');
  Label1.Caption:='Kalan Hak: '+IntToStr(hak);
  end;

    if hak=0 then
    begin
      ShowMessage('Tüm Haklarınız Bitti, Kaybettiniz. 
      Doğru sayi: '+ IntToStr(tut)) ;
    end;

    if hak=1 then
    begin
      ShowMessage('Son Hakkın İyi Tahmin et!');
    end;

    edit1.Text:='';
    edit1.SetFocus;
end;

procedure TForm2.FormCreate(Sender: TObject);
begin
Label1.Caption:='Kalan Hak: ' + IntToStr(hak);
end;

end.
   

5 yorum

Yazıyla ilgili soru ve önerilerini bekliyorum
EmoticonEmoticon