yazı tura oyunu(bir yerde takıldım)

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
secret_boy
Üye
Mesajlar: 151
Kayıt: 17 Kas 2005 04:46

yazı tura oyunu(bir yerde takıldım)

Mesaj gönderen secret_boy »

merhaba arkadaslar
ben bir yazı tura oyunu yapmaya calıstım.Formuma iki adet image attım
bir buton ve label var.benim istedigim butona basınca rasgele degişen resimlerden o an hangisi durmussa(yazı yada tura olayı)labele yazı yada tura yazsın.
Takılmıs oldugum kısım resimleri random/randomize ile nasıl rasgele dondurup belli bir sure sonra durdurabilirim+labelede o resmin yazı veya tura olayını nasıl yazdırabilirim yardımlarınız için simdiden tesekkur ederim.herkese iyi calısmalar...
Resimler burada:

Resim Resim
Ancestor
Üye
Mesajlar: 188
Kayıt: 27 Ara 2004 06:12
Konum: Manisa - Kırkağaç

Mesaj gönderen Ancestor »

Merhaba,
Bir döngü kurabilirsin, mesela 100'lük bir döngü. 100 defa yazı tura olarak 0 - 1 sayılarını attırırsınız. En son olarak (mesela) 0 geldiyse yazı 1 geldiyse tura yazdırabilirsiniz.

Kısaca;

Kod: Tümünü seç

procedure TForm1.Button1Click(Sender: TObject);
var
sayi,dongu:integer;
begin
for dongu:=1 to 100 do
begin
Randomize;
sayi := Random(2);
end;
if sayi = 0 then showmessage('Yazı');
if sayi = 1 then showmessage('Tura');
end;

end.
Kolay gelsin
secret_boy
Üye
Mesajlar: 151
Kayıt: 17 Kas 2005 04:46

Mesaj gönderen secret_boy »

ilgilendiginiz icin cok tesekkur ederim vermiş oldugunuz kod içinde.yalnız ben resimlerin donusunu timer kullanarak yaptım ben onlar durunca hangisi durmussa onu labele yazdırmak istiyorum.Programın ekran goruntusude su sekilde sorumun daha iyi anlasılması acısından resmini upload ediyorum.tekrar cok tesekkur ederim.
Resim
insallah anlatabilmişimdir.
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Mesaj gönderen aslangeri »

s.a.
timer nesnesi durduğu zaman hangi image bileşeni şhow ediliyorsa o image bileşende gösterilen resim gelmiştir.
timer içinde nasıl yaptın bilmiyorum ama
global bir değişkene resmi her değiştirdiğinde bir arttırırsın işlem bittiği zaman değişken tekse yazı çiftse tura dersin vey onun gibi bişey. tabi global değişkeni ilk başta set etmeyi unutma.
kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
secret_boy
Üye
Mesajlar: 151
Kayıt: 17 Kas 2005 04:46

Mesaj gönderen secret_boy »

merhaba yukarda programa ait ekran ve resimler oldugu için tekrar koymaya gerek yok.

benim 3 tane timer'ım var bunların içindeki kodlar su sekilde

1.timer da:

Kod: Tümünü seç

procedure TForm1.Timer1Timer(Sender: TObject);
begin
yazi.Visible:=true;
tura.Visible:=false;
timer2.Enabled:=true;
timer1.Enabled:=false;
end;
2.timer da:

Kod: Tümünü seç

procedure TForm1.Timer2Timer(Sender: TObject);
begin
yazi.Visible:=false;
tura.Visible:=true;
timer1.Enabled:=true;
timer2.Enabled:=false;
end;
3.timer'a da yapamadıgım seyi ekleyerek bunu halletmek istiyorum.yani bu timer'a
procedure TForm1.Button1Click(Sender: TObject);
var
sayi,dongu:integer;
begin
for dongu:=1 to 100 do
begin
Randomize;
sayi := Random(2);
end;
if sayi = 0 then showmessage('Yazı');
if sayi = 1 then showmessage('Tura');
end;

end.
buradaki dongu yerine image'i donduremezmiyim.bunu dondurup bir label yada formun captionuna yazı ise yazı tura tarafı ise tura yazdırmak istiyorum ama ne yaptımsa burasını halledemedim.
ben size tum kodları vereyim bir bakarsanız cok sevinirim.

Kod: Tümünü seç

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, jpeg, Menus, StdCtrls, ALabel, Buttons;

type
  TForm1 = class(TForm)
    yazi: TImage;
    Timer1: TTimer;
    Timer2: TTimer;
    tura: TImage;
    PopupMenu1: TPopupMenu;
    k1: TMenuItem;
    RadioButton1: TRadioButton;
    RadioButton2: TRadioButton;
    Timer3: TTimer;
    SpeedButton1: TSpeedButton;
    procedure Timer1Timer(Sender: TObject);
    procedure Timer2Timer(Sender: TObject);
    procedure yaziMouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure turaMouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure k1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure SpeedButton1Click(Sender: TObject);
    procedure SpeedButton1MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure RadioButton1Click(Sender: TObject);
    procedure RadioButton2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  Image:TImage;
implementation

{$R *.dfm}
procedure asalak;
begin
releasecapture;
form1.Perform(wm_syscommand,$F012,0);
application.ProcessMessages;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
yazi.Visible:=true;
tura.Visible:=false;
timer2.Enabled:=true;
timer1.Enabled:=false;
end;

procedure TForm1.Timer2Timer(Sender: TObject);
begin
yazi.Visible:=false;
tura.Visible:=true;
timer1.Enabled:=true;
timer2.Enabled:=false;
end;

procedure TForm1.yaziMouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
asalak;
end;

procedure TForm1.turaMouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
asalak;
end;

procedure TForm1.k1Click(Sender: TObject);
begin
close;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
timer1.Enabled:=false;
timer2.Enabled:=false;
speedbutton1.Enabled:=false;
end;

procedure TForm1.SpeedButton1Click(Sender: TObject);
begin
timer1.Enabled:=true;
timer2.Enabled:=true;
 radiobutton1.Enabled:=false;
 radiobutton2.Enabled:=false;
 speedbutton1.Enabled:=false;
end;

procedure TForm1.SpeedButton1MouseDown(Sender: TObject;
  Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
if (not radiobutton1.Checked) and (not radiobutton2.Checked) then
showmessage('Yazı yada Tura Alanlarını seçiniz !');
end;

procedure TForm1.RadioButton1Click(Sender: TObject);
begin
if radiobutton1.Checked then
speedbutton1.Enabled:=true;
end;

procedure TForm1.RadioButton2Click(Sender: TObject);
begin
if radiobutton2.Checked then
speedbutton1.Enabled:=true;
end;

end.
Herkese yardım ve ilgilerinden dolayı cok tesekkur ederim.
Kullanıcı avatarı
bluekid
Kıdemli Üye
Mesajlar: 541
Kayıt: 11 Haz 2004 10:45
İletişim:

Mesaj gönderen bluekid »

cevap verilmiş ama sen fakında değilsin sanırım :D
timer nesnesi durduğu zaman hangi image bileşeni şhow ediliyorsa o image bileşende gösterilen resim gelmiştir.
timer içinde nasıl yaptın bilmiyorum ama
global bir değişkene resmi her değiştirdiğinde bir arttırırsın işlem bittiği zaman değişken tekse yazı çiftse tura dersin vey onun gibi bişey. tabi global değişkeni ilk başta set etmeyi unutma.
kolay gelsin.
ercere
Üye
Mesajlar: 48
Kayıt: 23 Kas 2004 02:38
Konum: Ulus-BARTIN

Mesaj gönderen ercere »

Merhaba sanıyorum bu basit kod işinizi görür.

Kod: Tümünü seç

procedure TForm1.baslatClick(Sender: TObject);
begin
    timer1.Enabled:=true;
end;

procedure TForm1.durdurClick(Sender: TObject);
begin
timer1.Enabled:=false;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
 if image1.Visible=true then
 begin
 image1.Visible:=false;
 image2.Visible:=true;
 end else
 begin
  image2.Visible:=false;
 image1.Visible:=true;
 end;
end;
Kolay Gelsin.
Bilginin sınırı öğrenmenin yaşı yoktur.
secret_boy
Üye
Mesajlar: 151
Kayıt: 17 Kas 2005 04:46

Mesaj gönderen secret_boy »

yardımlarınız ve vermiş oldugunuz kodlar için cok tesekkur ederim hallettim.herkese iyi calısmalar
Cevapla