Uzun zamandan sonra yazmaya vakit bulabildim. Bu sefer de ufak bir Sayısal loto aracı yaptım ve ayrıntılarıyla burada paylaşacağım. Ayrıca resimde gördüğünüz üzere titret butonu da MSN de kullandığımız titreşime benzetmeye çalıştım tahmin sırasında şansınızı etkilemek için 😉 Çok konuşmadan anlatıma geçiyorum.
Bu uygulamada 6 adet label ve 2 adet de buton kullandım. Kodlara geçmeden önce ekranın tasarımını yapıp label larin özelliklerinden Font ve BorderStyle‘i ile görünümü biraz daha düzelttim. İsimlerini de lblSayi0 …. lblSayi5 şeklinde atadım. Artık kodlara geçebiliriz.
Sayısal loto butonunun click event’i için kodlar ;
button1.Enabled = false;
Random rastgele = new Random();
for (int iLoop = 0; iLoop < 6; iLoop++)
{
for (int jLoop = 0; jLoop < 30; jLoop++)
{
switch (iLoop)
{
case 0:
lblSayi0.Text = rastgele.Next(0, 49).ToString();
break;
case 1:
lblSayi1.Text = rastgele.Next(0, 49).ToString();
break;
case 2:
lblSayi2.Text = rastgele.Next(0, 49).ToString();
break;
case 3:
lblSayi3.Text = rastgele.Next(0, 49).ToString();
break;
case 4:
lblSayi4.Text = rastgele.Next(0, 49).ToString();
break;
case 5:
lblSayi5.Text = rastgele.Next(0, 49).ToString();
break;
}
Application.DoEvents();
System.Threading.Thread.Sleep(15);
}
}
Titret butonumuzun click event’i için de şunları yazıyoruz ;
for(int iLoop = 0; iLoop < 20; iLoop++)
{
this.Left += 5;
this.Top -= 8;
System.Threading.Thread.Sleep(5);
this.Left -= 5;
this.Top += 8;
}
Yada farklı bir yol ile şu şekilde yazabiliriz;
int YerX = this.Left;
int YerY = this.Top;
Random rdm = new Random();
for (int iLoop = 0; iLoop < 20; iLoop++)
{
this.Left += rdm.Next(-12, 12);
this.Top += rdm.Next(-12, 12);
this.Left = YerX;
this.Top = YerY;
System.Threading.Thread.Sleep(10);
}
Burada Random nesnesinden daha önce bahsetmiştik. Bahsetmediklerimizden biri System.Threading.Thread.Sleep(); işlemcinin parantez içresini yazılan ms(milisaniye) miktarı kadar uyutulması yani işlem yapmasını engellemek oluyor. Bunu yazmamızın nedenini, o kodu kaldırıp denerseniz farkı daha rahat anlarsınız, sayıların döndüğünü görebilmek yani aradaki sayıları atlamaz.Normalde işlemci fazla işlem yapmamak adına aradaki işlemleri atlayıp son işlemi yapar bizde arada geçen sayıları görmeyiz. Bir de Application.DoEvents() bu da işlemi gerçekleştirmesi için bir komuttur. Ayrıca this geçen kodlar da formu temsil eder. Yani formun kendisidir. Aklınıza takılan bir şey olursa elimden geldiğince cevaplayabilirim…
Kaynak kodunu buradan indirebilirsiniz :
http://rapidshare.com/files/335330561/SayisalLotoTahminAraci.rar
herşey için teşekkürler
ya abicim daha ilerisinide anlatırsanız çok şahane olacak
Tam olarak nasıl bir uygulama yada bilgi istiyorsanız belirtin, ben de ona göre ekleyebilirim…
yazdığınız kodlarda 1 den 49 a kadar 6 adet sayı sallıyor ancak aynı sayılarda gelebilir ..
Hepsinin farklı olması lazım.
Evet ama zaten örnek basit olsun diye o şekilde yapmıştım, üzerinde çok da düşünmeden yapmıştım, fırsat bulursam dediğiniz gibi yapıp buraya onun kodunu da eklerim.
Kardes aynen böyle random sayılar üretsin ama aynı sayıyı bir daha üretmesin.Böyle bir şey yapabilirmiyiz?.teşekkürler.
Bir dizi oluşturursun, rastgele sayıları oluşturdukdan sonra dizinin içerisinde aynı olmama koşulu ile kontrol eder aynı değilse diziye atarsın. Sonuçta birbirinden farklı rastgele sayı bulunduran bir dizi oluşturursun…
ben aslında form applicationda bir tombala oyunu yapmak istiyorum ama yapamıyacam galiba:)
tombala oyunu derken ? biraz daha ayrıntıya girebilirsen belki yardımcı olabilirim
MERHABA BIR PROJEM VAR AMA BU DERSI PEK ANLAMIYORUM PROJE SU
4İŞLEMLİ BİR OYUN
BUTONA BASILINCA OYUN BASLICAK
VE SORU GELCEK ORNEGIN 6+6 ?
VE SECENEKLER GELICEK 4 . 8 .23.12 BEN 12 DEDIGIM ZAMAN DIER SORUYA GECICEK VE HER SORUDA 10 SANIYE OLUCAK
BOYLE BOYLE 4 ISLEMI SORUCAK VE OYUN 5 LEVELDE BITCEK
HER SORU 10 PUAN 10 SORUDA BITICEK OYUN
SORU BILINMESSE ZAMAN BITINCE TEKRAR SORCAUK YARDIM EDIN LUTFEN 😦