Random Sınıfı

Random sınıfı, rastgele sınıfıdır. Rastgele değer üretmek için kullanılan bir sınıftır. Rastgele bir rakam üretilirken bizim vermiş olduğumuz aralıkta bir rastgele değer üretilir. Burada gelen rastgele rakam, sistem saatinden, cpudan alınan veriler, bilgisayarın diğer sistemsel verilerinden alınan ve rastgele bir değerdir.

Basit bir şekilde kullanımı için örnekleme yaparsak;

Formumda bir tane buton bir tane de label ekliyorum. Butona bastığımda benim belirlediğim aralıkta bir rastgele rakam üretilsin ve labela yazdırılsın.

Onun öncesinde şöyle bir bilgi verelim:

sayi = rnd.Next(1, 100);

Random sınıfından türettiğim rnd nesnemin Next metodu ile 1 ile 100 arası bir rakam üretilmesini sağlıyorum. Burada dikkat edilmesi gereken, üretilen rakamlarda 1 olabilir ancak 100 olmayacaktır. Yani ilk değer dahildir, ikinci değer dahil değildir. Bu iki değer arasında yer alan rakamlar dahildir.

O halde tüm kodları yazalım;

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace RandomOrnekProje
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            //Random sınıfından bir instance alıyorum. 
            Random rnd = new Random();

            //Bir değişken oluşturdum, random sınıfından gelecek olan sayıyı buraya atacağım.
            int sayi;

            //Random sınıfından türettiğim rnd nesnemin Next metodu ile 1 ile 100 arası bir rakam üretilmesini sağlıyorum. Burada dikkat edilmesi gereken, üretilen rakamlarda 1 olabilir ancak 100 olmayacaktır. Yani ilk değer dahildir, ikinci değer dahil değildir. Bu iki değer arasında yer alan rakamlar dahildir.
            sayi = rnd.Next(1, 100);

            label1.Text = sayi.ToString();
        }
    }
}

Örnek olarak ben bir label daha ekliyorum. Bu sefer iki sayı üretmeye çalışacağım. Amacım tek bir random sınıfından ürettiğim nesne ile birden fazla rakamın üretilebileceğini göstermek. Üretilen rakamlar farklı da olabilir, aynı da olabilir. Bunun kodları da;

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace RandomOrnekProje
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            //Random sınıfından bir instance alıyorum. 
            Random rnd = new Random();

            //Bir değişken oluşturdum, random sınıfından gelecek olan sayıyı buraya atacağım.
            int sayi1, sayi2;

            //Random sınıfından türettiğim rnd nesnemin Next metodu ile 1 ile 5 arası bir rakam üretilmesini sağlıyorum. Burada dikkat edilmesi gereken, üretilen rakamlarda 1 olabilir ancak 5 olmayacaktır. Yani ilk değer dahildir, ikinci değer dahil değildir. Bu iki değer arasında yer alan rakamlar dahildir. Ayrıca görüleceği üzere tek bir nesneden farklı değerler de elde edebiliyorum.
            sayi1 = rnd.Next(1, 5);
            sayi2 = rnd.Next(1, 5);

            label1.Text = sayi1.ToString();
            label2.Text = sayi2.ToString();
        }
    }
}

Son bir örnekle yazımızı bitirelim. Bu örneğim de  formuma 3 adet label, 3 adet Textbox ve bir adet buton ekliyorum. Amacım şu textboxlara rakam gireceğim, daha sonra butona bastığımda rastgele labellarda çıkan rakamlar ile eşleşme durumunu kontrol edeceğim. Eğer eşleşme var ise textbox rengim yeşil, eşleşme yoksa textbox rengim kırmızı olacak. Girilecek rakam değerlerim de 1ile 6 arası, yani türeyecek rakamlar 1,2,3,4,5. Böyle basit bir oyuncuk yapalım. Bununla birlikte hem random sınıfını hem de if else yapısını kullanmış oluruz.

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using System.Windows.Forms;

namespace RandomOrnekProje

{

    public partial class Form1 : Form

    {

        public Form1()

        {

            InitializeComponent();

        }

        private void button1_Click(object sender, EventArgs e)

        {

            //Random sınıfından bir instance alıyorum.

            Random rnd = new Random();

            //üç değişken oluşturdum, random sınıfından gelecek olan sayıları buraya atacağım.

            int sayi1, sayi2, sayi3;

           //1 ile 5 dahil olmak üzere bu aralıkta rastgele 3 rakam üretiyorum.

            sayi1 = rnd.Next(1, 6);

            sayi2 = rnd.Next(1, 6);

            sayi3 = rnd.Next(1, 6);

            //üretilen sayıları labellara yazdırıyorum.

            label1.Text = sayi1.ToString();

            label2.Text = sayi2.ToString();

            label3.Text = sayi3.ToString();

            //textboxlara girilen sayılar ile labellarda yazan sayıları karşılaştırıyorum.

            if (label1.Text == textBox1.Text)

            {

                textBox1.BackColor = Color.Green;

            }

            else

            {

                textBox1.BackColor = Color.Red;

            }

            if (label2.Text == textBox2.Text)

            {

                textBox2.BackColor = Color.Green;

            }

            else

            {

                textBox2.BackColor = Color.Red;

            }

            if (label3.Text == textBox3.Text)

            {

                textBox3.BackColor = Color.Green;

            }

            else

            {

                textBox3.BackColor = Color.Red;

            }

        }

    }

}

Öncelikle Random sınıfından rnd isminde bir nesne ürettim. 3 tana sayı üretilmesini istediğim için 3 değişken tanımlamadım. 1 ile 5 dahil olsun istediğim için Next(1,6) şeklinde kodlarımı yazdım. Daha sonra üretilen sayıları labellara yazdırdım ve akabinde textboxa girdiğim sayılar ile labellara girdiğim sayılar eşleşiyor mu kontrol ettim.

Random sınıfı

Şimdilik bu kadar 😊

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir