Paylaş |
|
Tweet |
Sayısal loto oynamaya giderken evde kendi çekilişinizi yapıp, sayıları belirleyebileceğiniz bir uygulama göstereceğim.(Tutarsa beni de görürsünüz 🙂) Genellikle C# dersinde hocaların da ödev olarak vermeyi tercih ettiği yapılardan biri olabiliyor sayısal loto uygulaması.
Biz uygulamayı oluştururken sayıları ekrana sırayla yazdıracağız. Ve bunun için timer öğesinden yararlanacağız. Kısaca nasıl yapılacağını anlatayım hemen.
![]() | ![]() |
İlk olarak yeni bir proje oluşturuyoruz. Daha sonra sırayla ekrana yazdırmak için gerekli olan timer öğesini projemize ekliyoruz. Timer öğesinin ekledikten sonra formunuzun tasarımını aşağıda ki gibi yapabilirsiniz. “Sayıları Belirle” butonumuzun click olayına aşağıda ki kodları yazıyoruz.
lbl_Sayi1.Text = "???"; lbl_Sayi2.Text = "???"; lbl_Sayi3.Text = "???"; lbl_Sayi4.Text = "???"; lbl_Sayi5.Text = "???"; lbl_Sayi6.Text = "???"; SayilariBelirle();
Sayıları yazacağımız labellerimizin textlerini ben ??? yaptım siz istediğinizi yazabilirsiniz.
Daha sonra butonumuzun click olayına yazdığımız SayilariBelirle metodumuzu oluşturuyoruz.
int[] sayilar = new int[6]; // Rastgele oluşturulan sayılar için dizi tanımlıyoruz.. void SayilariBelirle() { Random r = new Random(); int rastgele; int sayac = 0; // Sayacı sıfırlıyoruz.. while (sayac < 6) { rastgele = r.Next(1, 50); // 1 ile 49 arasında rastgele sayı üretiliyor.. if (Array.IndexOf(sayilar, rastgele) == -1) // Dizinin içinde var mı yok mu kontrol ediyoruz.. { sayilar[sayac] = rastgele; // Üretilen rastgele sayıyı dizinin sayaç kaç ise o elemanına atıyoruz.. sayac++; // Sayacı bir arttırıyoruz.. } } Array.Sort(sayilar); // Oluşturulan sayıları küçükten büyüğe sıralıyoruz.. timer1.Start(); // Ve timer kontrolümüzü başlatarak ekrana yazdırıyoruz. }
Ve yukarıda ki kodları oluşturduğumuzda butona bastığınızda Random ile rastgele olarak 6 adet sayı oluşturacak ve her sayı oluşturduğunda sayının daha önce oluşturulup oluşturulmadığını kontrol ettikten sonra ilgili diziye atıyoruz. Rastgele sayı oluşturma işlemi bittikten sonra Array.Sort() metodu ile dizimizdeki sayıları küçükten büyüğe doğru sıralıyoruz. Sıra da oluşturulan ve sıralanan 6 adet rastgele sayımızı ekrana yazdırmak kalıyor. Bunun içinde timer öğemizin çalışmasını başlatıyoruz.
int sayac = 0; private void timer1_Tick(object sender, EventArgs e) { btn_Belirle.Text = "Sayılar Belirleniyor..."; btn_Belirle.Enabled = false; sayac++; if (sayac<14) { lbl_Sayi1.Text = "Belirleniyor..."; if (sayac % 2 == 0) { lbl_Sayi1.ForeColor = Color.Red; rButton_Sayi1.Checked = true; } else { lbl_Sayi1.ForeColor = Color.Green; rButton_Sayi1.Checked = false; } } if (sayac > 14 && sayac < 28) { lbl_Sayi2.Text = "Belirleniyor..."; if (sayac % 2 == 0) { lbl_Sayi2.ForeColor = Color.Red; rButton_Sayi2.Checked = true; } else { lbl_Sayi2.ForeColor = Color.Green; rButton_Sayi2.Checked = false; } } if (sayac > 28 && sayac < 42) { lbl_Sayi3.Text = "Belirleniyor..."; if (sayac % 2 == 0) { lbl_Sayi3.ForeColor = Color.Red; rButton_Sayi3.Checked = true; } else { lbl_Sayi3.ForeColor = Color.Green; rButton_Sayi3.Checked = false; } } if (sayac > 42 && sayac < 56) { lbl_Sayi4.Text = "Belirleniyor..."; if (sayac % 2 == 0) { lbl_Sayi4.ForeColor = Color.Red; rButton_Sayi4.Checked = true; } else { lbl_Sayi4.ForeColor = Color.Green; rButton_Sayi4.Checked = false; } } if (sayac > 56 && sayac < 70) { lbl_Sayi5.Text = "Belirleniyor..."; if (sayac % 2 == 0) { lbl_Sayi5.ForeColor = Color.Red; rButton_Sayi5.Checked = true; } else { lbl_Sayi5.ForeColor = Color.Green; rButton_Sayi5.Checked = false; } } if (sayac > 70) { lbl_Sayi6.Text = "Belirleniyor..."; if (sayac % 2 == 0) { lbl_Sayi6.ForeColor = Color.Red; rButton_Sayi6.Checked = true; } else { lbl_Sayi6.ForeColor = Color.Green; rButton_Sayi6.Checked = false; } } if (sayac == 14) { lbl_Sayi1.Text = sayilar[0].ToString(); } if (sayac == 28) { lbl_Sayi2.Text = sayilar[1].ToString(); } if (sayac == 42) { lbl_Sayi3.Text = sayilar[2].ToString(); } if (sayac == 56) { lbl_Sayi4.Text = sayilar[3].ToString(); } if (sayac == 70) { lbl_Sayi5.Text = sayilar[4].ToString(); } if (sayac == 85) { lbl_Sayi6.Text = sayilar[5].ToString(); timer1.Stop(); sayac = 0; btn_Belirle.Text = "Sayıları Tekrar Belirle"; btn_Belirle.Enabled = true; } }
timer öğemizi başlattıktan sonra butonumuzun textini ve enabled özelliklerini değiştiriyoruz. timer öğesini kontrol edebilmek için sayaç oluşturuyoruz ve sayacımızı 1 arttırıyoruz. Sayacımız 14 den küçük oldukça 1. sayının yerine Belirleniyor yazıyoruz ve sayacımızın 2 ye bölümünden kalan 0 olduğunda yazımızın rengini kırmızı ve radiobuttonumuzu seçili hale getiriyoruz. Sayacımızın 2 ye bölümünden kalan 0 olmadığında ise yazımızın rengi yeşil ve radiobuttonumuzun checked özelliğini false yazpıyoruz. Diğer sayılarımız içinde aynı şekilde yapıyoruz ve sayacımız belirlemiş olduğumuz 14 sayısına ulaştığında ilk sayımızı ekrana yazdırıyoruz. Diğer sayılarımızı ekrana yazdırmak için de aynı metodu kullanıyoruz. Ve son sayımızı ekrana yazdırdıktan sonra timer öğemizi durduruyoruz, sayacımızı sıfırlıyoruz, butonumuzun textini değiştirip enabled özelliğini true yapıyoruz.
Bu uygulamamızda dizi kullanımını, dizileri küçükten büyüğe sıralamayı, kendi metodumuzu oluşturmayı ve timer öğesini kullanmayı öğrendik. Ek olarak bir sayının 2 ye bölümünden kalanı bulmayı da öğrendik 🙂 Hepinizi bol kodlamalı günler diliyorum… Bir sonra ki yazımızda görüşmek üzere…
Sayisal-Loto.zip Dosyasını İndir