At Yarışı oyunu simülasyon tekniği?

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
aslanbey42
Üye
Mesajlar: 2
Kayıt: 02 Oca 2009 11:41

At Yarışı oyunu simülasyon tekniği?

Mesaj gönderen aslanbey42 »

Merhaba arkadaşlar forumu uzun zamandan beri takip etmketeyim.Zorlandığımda forumdaki konulardan epeyce yardım aldım allah sizden razı olsun arkadaşlar(delphiye yeni başlamaktayım :)) ).ayrıca üyeliklerinde açılmasını dört gözle bekliyordum.Birazdan vereceğim kod benim delphide proje ödevim.Bir at yarışı yapmak istedim arkadaşlar projem için.Benim sizden istediğim bana şu kodu yaz çözülür değil bunun için şunları yap bi dene buralara bak gibi.Yani çözüm şudur yada şu değildir diye birşey istemiyorum,şurada hatan var düzelt gel gibi sölerseniz sevinirm.Böyle yaparsanız ufaktanda öğrenmeye başlıyacağım.Yani özletlemek gerekirse bana elinizden geldiğince yol göstermeniz arkadaşlar..
İki tane listbox var projemde birinci listboxda atların isimleri var oynayacağımız atların isimlerini ikinci listboxa atmayı yaptım arkadaşlar.Yada isimlerini silmeyi felan.Benim bundan sonra izleyeceğim adımlar ne olmalıdır işte asıl sorun burda bu.Buradan acaba atların herbirine bir diziyle(array) olaslık atayıp onlarımı oynatacağım; yada rasgele sayı üretip (0 ile 1 arasında )her at oyunu rasgelemi kazanacak yani anliyacağınız işin içinden çıkamadım arkadaşlar. :)
Ayrıca şu ana kadar yapmış olduğum yerlerde hatalarım varsada düzeltirseniz çok sevinirim arkadşlar

Projemin Kodları :

unit PROCEMMMMMM;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ExtCtrls;

type
TForm1 = class(TForm)
Panel1: TPanel;
Panel2: TPanel;
Button1: TButton;
ListBox1: TListBox;
ListBox2: TListBox;
Button2: TButton;
Button3: TButton;
Button4: TButton;
Edit1: TEdit;
Button5: TButton;
Button6: TButton;
Button7: TButton;
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure Button6Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.Button2Click(Sender: TObject);
begin
listbox1.Items.add(edit1.text);
edit1.Clear
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
listbox1.items.delete(listbox1.itemindex)
end;

procedure TForm1.Button4Click(Sender: TObject);
begin
listbox1.clear
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
Listbox2.items.add(listbox1.items[listbox1.itemindex]);

end;

procedure TForm1.Button5Click(Sender: TObject);
begin
listbox2.items.delete(listbox2.itemindex)
end;

procedure TForm1.Button6Click(Sender: TObject);
begin
listbox2.clear
end;

procedure TForm1.FormCreate(Sender: TObject);
begin

end;

end.
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Re: At Yarışı oyunu simülasyon tekniği?

Mesaj gönderen aslangeri »

s.a.
Öncelikle forma koyduğun bileşenlere uygun isimler ver.
  • Buttonclick e kodlar yazmışsın ama burdan buttonun amacı ney bilmediğimiz için kodlardan yola çıkarak butonun amacının ne olduğunu anlıyacağız ondan sonra kodları tekrar amaca uygun yazılmışmı diye kontrol edeceğiz. belki ufak bir projedeönemli değil gibi görünebilir ancak bileşenlere isim vermek önemli bir konu ve nasıl başlarsanız öyle devam eder.
  • Listboxların itemindex lerini kullanmadan önce itemindexlerinin -1 den büyük olup olmadıklarını (yani listboxdan bir elemanın seçilip seçilmediğini) kontrol et.

    Kod: Tümünü seç

     if listboxXXX.itemindex>-1 then
    gibi.
  • Atların nasıl yarış kazanacağına sizin karar vermeniz lazım. Önce kağıt üzerinde algoritmanızı hazırlayın. Sonra bu algoritmayı bilgisayarın anlayacağı hale getirin.
kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
aslanbey42
Üye
Mesajlar: 2
Kayıt: 02 Oca 2009 11:41

Re: At Yarışı oyunu simülasyon tekniği?

Mesaj gönderen aslanbey42 »

S.a Arkadaşlar

Kod: Tümünü seç

unit PROCEMMMMMM;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, ExtCtrls,Math;

type
  TForm1 = class(TForm)
    Panel1: TPanel;
    Panel2: TPanel;
    KuponaAktar: TButton;
    Liste: TListBox;
    Kupon: TListBox;
    EkleListe: TButton;
    SilListe: TButton;
    TemizleListe: TButton;
    Edit1: TEdit;
    SilKupon: TButton;
    TemizleKupon: TButton;
    OynaKupon: TButton;
    procedure EkleListeClick(Sender: TObject);
    procedure SilListeClick(Sender: TObject);
    procedure TemizleListeClick(Sender: TObject);
    procedure KuponaAktarClick(Sender: TObject);
    procedure SilKuponClick(Sender: TObject);
    procedure TemizleKuponClick(Sender: TObject);
    procedure ListeClick(Sender: TObject);
    procedure KuponClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.EkleListeClick(Sender: TObject);
begin
 liste.Items.add(edit1.text);
 edit1.Clear
end;

procedure TForm1.SilListeClick(Sender: TObject);
begin
 liste.items.delete(liste.itemindex)
end;

procedure TForm1.TemizleListeClick(Sender: TObject);
begin
liste.clear
end;

procedure TForm1.KuponaAktarClick(Sender: TObject);
begin
 Kupon.items.add(liste.items[liste.itemindex]);
 
end;

procedure TForm1.SilKuponClick(Sender: TObject);
begin
 Kupon.items.delete(Kupon.itemindex)
end;

procedure TForm1.TemizleKuponClick(Sender: TObject);
begin
 Kupon.clear
end;

procedure TForm1.ListeClick(Sender: TObject);
begin
if liste.ItemIndex>-1 then
end;

procedure TForm1.KuponClick(Sender: TObject);
begin
if kupon.ItemIndex>-1 then
end;

procedure TForm1.FormCreate(Sender: TObject);
begin

end;

end.
Üstad aynen deiğiniz gibi projemdeki neslerimi isimlendirdim.Ben liste listboxındaki 10 tane ata olasılık değerlirini rasgele olarak dizi ile vermek istiyorum.Ama sadece 10 tane olasılık değeri vermesi lazım ve bu 10 tane olaslık değerinin toplamıda 1 olacak şekilde programımı yapmayı düşünüyorum.Bu vermiş olduğumuz olaslık değerlerindeki atlar kupon listboxına alındğında bunları ayrı bir listbox vb başka bir nesneyle kullanıcıya vermek istiyorum.Bundan sonra ne tür bir yol izleyeceğim konusunda fikir verirseniz çok sevinirim.Şimdiden teşekkür ederim ..
Allaha emanet olun...
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Re: At Yarışı oyunu simülasyon tekniği?

Mesaj gönderen aslangeri »

s.a
isimlendirmeler tamamda
listboxun itemindexini kontrol et deyince yanlış anlamışsın sanırım.

Kod: Tümünü seç

procedure TForm1.ListeClick(Sender: TObject);
begin
if liste.ItemIndex>-1 then
end;
bu kod ile ne yapmak istemişsin anlamadım.
benim demek istediğim

Kod: Tümünü seç

procedure TForm1.SilKuponClick(Sender: TObject);
begin
Kupon.items.delete(Kupon.itemindex)
end;
komutunda eğer kupon listboxunda herhangi bir eleman seçilmeden sil düğesine tıklarsa program hata verecektir.
bunun için

Kod: Tümünü seç

procedure TForm1.SilKuponClick(Sender: TObject);
begin
if kupon.ItemIndex>-1 then
   Kupon.items.delete(Kupon.itemindex)
end;
onun haricinde ben olsam rastgele at yarışı oynayan bir programı kullanmam. onun yerine atların belli özelliklerini tutan bir sınıf yapıp ona göre atlara belli puanlar veren bir sistem düşünebilirsin.
kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Cevapla