cial Icons

Ders7: Rastgele Sayı ve Timer kullanımı

Rastgele(Random) Sayı Atama ve Timer kullanımı

C# Rastgele Sayı Üretme


Merhaba arkadaşlar, bu yazımda rastgele sayı üretme ve atama işlemlerini gerçekleştiren tanım ve metotları paylaşacağım.

Rastgele sayı üretme işlemi genellikle şans oyunlarında karşımıza çıkar. Buna çok yakın bir örnek olarak küçük bir program yardımıyla rastgele sayı atama işlemlerini birlikte gözden geçirelim.

Öncelikle rastgele sayı üretmek için Random sınıfı ve bu sınıfın özellikleri olan Next(), NextBytes(), NextDouble() metotları kullanılır.

Tanımlama işlemini bu şekilde yapabiliriz.
 

Örneğimizde şans oyunlarından LuckySeven adlı bir oyun oluşturalım.


Arayüzümüzü oluşturmak için 3 tane label ve 1 tane buton işimizi görecektir. 3 tane label’ı genişleterek Properties’den Text özelliğine 7 yazıyoruz.
Butonun Text özelliğine de Start yazıyoruz.
 İsterseniz formun arka plan renklerini BackColor özelliğinden değiştirebilirsiniz. Arayüzümüz şimdi fotoğraftaki hale gelmiş olmalı.
 

Timer kullanımı:
Label’lar üzerindeki sayıların değişim hızını ayarlayabilmek için Toolbox’tan Timer ekliyoruz.(sayfanın alt tarafında bir menü açılarak oraya eklenecektir.) Timer’ın propertiesden Interval özelliğini istediğimiz seviyeye getiriyoruz. Interval ms bazında çalışır ve sayıların ne kadar sürede bir değişeceğini belirtir.


Programımıza geri dönecek olursak kodlarımızı aşağıda paylaşıyorum.

Bakalım siz kaçıncı defada kazanacaksınız J


 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
        Random rnd = new Random();
        private void button1_Click(object sender, EventArgs e)
        {
            if (btnStart.Text == "START")
            {
                timer1.Enabled = true;
                //starta basıldıktan sonra buton Stop'a dönecektir.
                btnStart.Text = "STOP";
            }
            else
            {
                timer1.Enabled = false;
             
                if (label1.Text == "7" && label2.Text == "7" && label3.Text == "7")
                        MessageBox.Show("Büyük ikramiyeyi kazandınız.","WIN!WIN!WIN!");
                else
                        MessageBox.Show("HA GAYRET");

                //Butonun Text özelliğini propertiesden de değiştirebiliriz.
                btnStart.Text = "START";
            }           
        }
        private void timer1_Tick(object sender, EventArgs e)
        {
            //Labellara 1-8(8 dahil değil) arasında değerler atıyoruz.
            // Labelların text özelliğini değiştirdiğimizden rakamları ToString metoduyla değişken değişimi yapıyoruz.
            label1.Text = rnd.Next(1, 8).ToString();
            label2.Text = rnd.Next(1, 8).ToString();
            label3.Text = rnd.Next(1, 8).ToString();           
        }

Hiç yorum yok :

Yorum Gönder