C# Random Nedir?

C# random kullanımına ilişkin makalemizi inceleyebilir veya YouTube üzerinden eğitim videomuzu izleyebilirsiniz.

Random rastgele anlamına gelmektedir. Rastgele ise tesadüfen, tesadüfi anlamına gelir.
Programlamada Random kullanılarak belirlenen bir aralıkta sayı üretilmesi sağlanır. Örneğin; 1 ile 50 arasında bir tamsayı üretilmek istenebilir.
Tahmine dayalı oyun uygulamaları, şans oyunları ve çekilişlerde rastgele sayı üretme işleminden faydalanılır.

C# Random Kullanımı Örnekleri

  • Bilgi Yarışması : Daha önceden soru havuzuna kaydedilmiş bir kütüphaneden rastgele indisteki soruların seçilmesi.
  • Kura (Çekiliş) : 1 ile istenilen sayı aralığından istenildiği kadar sayı seçilmesi. Örneğin; 1-150 arasından 5 sayının (5 kişinin) seçilmesi.
  • Şifre Uygulamaları: Kullanıcıya rastgele karakterlerden oluşan bir şifre önerisinde bulunulabilir.

C# Random Nasıl Kullanılır

Random rnd=new Random();
int rastgele_sayi=rnd.Next();

Random sınıfından rnd isminde bir nesne türetilmiştir. Artık rnd nesnesi Random sınıfının bütün özelliklerini kendinde barındıracaktır. Türetilen nesneye rnd ismi yerine farklı isimler verilebilir. Daha sonra Next metodu ile istenilen aralıkta üretilen sayı int türündeki rastgele_sayi ismindeki değişkene aktarılmıştır.

Random sınıfının Next metodu ile rastgele sayı üretilmesi sağlanır. Next metodu üç farklı şekilde kullanılır;

1-Next(): 0 ile 2 milyar arasında rasgele bir sayı verir.

2-Next(sayı): 0 ile sayı arasında bir sayı üretilir. Örneğin; Next(100) yazılırsa 0-100 arası sayı üretilir.

3-Next(sayı1,sayı2):sayı1 ile sayı2 arasında bir sayı üretilir. Örneğin; Next(50,100) yazılırsa 50 ile 100 arasında bir sayı üretilir.

Uygulama 1:

1-49 arasında rastgele 6 adet sayı üretilmesi.Aşağıdaki görsellerde formun tasarımı ve çalışma hali görüntülenmektedir.

C# Random Örnekleri 1

C# Random Örnekleri 1

C# Random Örnekleri 1
C# Random Örnekleri 1

NOT: Bu uygulamada üretilen 6 adet sayıdan birkaçının aynı olma ihtimali mümkündür. Aynı sayıların üretilmesinin önüne geçmek için diziler ve if-else if kontrol deyiminden faydalanılabilir. Ancak bu makalenin konusu Random olduğu için ve anlaşılırlığı kolaylaştırmak için bu kontrol sağlanmamıştır.

Uygulama 2: Butona her tıklandığında form arka plan renginin rastgele değiştirilmesi.

C# Random Color

C# Random Color
C# Random Color

Açıklamalar:

Color[] renkler = new Color[8] { Color.Red, Color.Blue, Color.Black, Color.Brown, Color.Purple, Color.White, Color.Pink, Color.Yellow };

Yukarıdaki kod satırında renkler isminde 8 elemanlı Color tipinde bir dizi tanımlanmıştır. 8 adet renk diziye eleman olarak aktarılmıştır. Diziler ile ilgili yeterli bilgisi olmayanlar dizilerle ilgili makaleyi inceleyebilir.

Random rnd = new Random();
int dizi_elemani = rnd.Next(0, 7);

0 ile 7 arasında rastgele sayı üretilmesi ve dizi_elemanı isimli int türündeki değişkende saklanması sağlanmıştır. Dizimiz 8 elemanlıdır ancak dizinin ilk elemanı 0. elemanıdır. Yani Renkler[0]=Color.Red, Renkler[3]=Color.Brown rengidir.

this.BackColor = renkler[dizi_elemani];

Formun arka plan rengi özelliği renkler dizisinin bir elemanına eşlenmiştir. Dizinin hangi elemanının arka plan rengi olarak belirleneceğini üretilecek rastgele sayı belirlemektedir. Örneğin; üretilen sayı 6 ise dizi_elemanı değişkeninin değeri 6 olur ve renkler[6] yani Color.Pink form arka plan rengini belirler.

NOT: Bu uygulamada butona bazı tıklamalarda rengin değişmediği görülecektir. Bunun nedeni üretilen sayının her iki tıklamada aynı olmasıdır. Bunun önüne farklı algoritmalar geliştirilerek geçilebilir.

Uygulama 3: C# Random Kullanımı ile Sayı Tahmin Oyunu

C# Sayı Tahmin Oyunu 1
C# Sayı Tahmin Oyunu 1
C# Sayı Tahmin Oyunu 2
C# Sayı Tahmin Oyunu 2
C# Sayı Tahmin Oyunu
C# Sayı Tahmin Oyunu

Açıklamalar:

  • Formun tüm olaylarında geçerli olmak üzere global (genel) değişkenler tanımlanır. Değişken tanımlamaları Form_Load olayının bir üst satırında yapılabilir.

  • Form yürütüldüğünde Tamam Butonu (Button1) pasif edilecektir.

  • Başla Butonuna (Button2) tıklandığında, tahmin_sayisi değişkeni sıfırlanacaktır. Tamam Butonu (Button1) aktif edilecektir. Başla Butonu (Button1) pasif edilecektir. Bunun için Button nesnesinin Enabled özelliği kullanılır. True değeri nesneyi aktif ederken, false değeri pasif eder. Daha sonra 0-100 arasında bir sayı türetilerek sayı isimli değişkende saklanır. Label5 nesnesi boş, label6 nesnesi 0 ve label7 nesnesi 1000 olarak belirlenir. Geçici olarak programın kontrolü için rastgele üretilen sayı label8 nesnesine yazdırılacaktır.

  • Tamam Butonuna (Button1) tıklandığında int türünde tahmin isminde bir değişken tanımlanır. Global olarak yukarıda tanımlanan tahmin_sayisi değişkeninin değeri 1 arttırılır. tahmin_sayisi değişkeninin durumu kontrol edilir. Tahmin_sayisi değişkeninin değeri 10’dan küçük ve eşitse textBox1 nesnesine girilen değer tahmin değişkenine aktarılır. Daha sonra int türündeki tahmin sayısı değişkeninin değeri string değişken türüne dönüştürülerek label6 nesnesine yazdırılır.
  • Daha sonra bilgisayar tarafından üretilen sayının tahmin edilen sayıya göre durumu değerlendirilir. Eğer tahmin edilen sayı üretilen sayıdan büyükse kullanıcıya “Tahmininiz azaltınız!” ipucu verilir. Puan değişkeninin değeri 100 azaltılır ve label7 nesnesine puan değişkeninin değeri yazılır. Eğer tahmin edilen sayı üretilen sayıdan küçükse kullanıcıya “Tahmininiz arttırınız!” ipucu verilir. Puan değişkeninin değeri 100 azaltılır ve label7 nesnesine puan değişkeninin değeri yazılır. Bu iki şart sağlanmadığında kullanıcının tahmini bilgisayar tarafından üretilen sayıya eşit demektir, bu durumda yapılacak işlemler else bloğuna yazılır. Kullanıcıya Tebrikler mesajı verilir, kaç hakta doğru sayıyı bildiği ve puanı bildirilir. Eğer tahmin_sayisi 10’u aşmış ise kullanıcıya “Tahmin hakkınız kalmadı. Oyun Kapatılacak! Mesajı verilir ve Form Uygulaması kapatılır.

 

SendeKodYaz Eğitim Platformu olarak yazılım hayatınızda başarılar dileriz.

C# Form Dersleri konusundaki makalelerimizi incelemek için tıklayınız.
C# Console Dersleri konusundaki makalelerimizi incelemek için tıklayınız.

Leave a comment