C# ile Sayısal Loto Uygulaması

Paylaş
 

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.

SayısalLotoUygulaması1 SayısalLotoUygulaması2

İ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…


İndir “Sayısal Loto Uygulaması” Sayısal-Loto.zip – 400 defa indirildi – 87 KB

Bu yazı 1.948 kere okundu.
  • Site Yorum

Bir adet yorum var.

  1. HASAN dedi ki:

    Program sayesinde 4 bildim 😂 çok teşekkürler 👏

Bir yorum bırak

YAZAR HAKKINDA

Bağımsız çalışan, çok düşünen, kodlamaya aşık ve güldürmeyi seven bir developer...
SPONSOR BAĞLANTILAR
SPONSOR BAĞLANTILAR

  • ÇOK OKUNAN
  • YENİ
  • YORUM
Facebookta Takip Edin
Kredi hakkında bilgi alanı
bahis siteleri deneme bonusu bonus veren siteler sekabet casino siteleri bahis siteleri deneme bonusu veren siteler imajbet asyabahis deneme bonusu deneme bonusu sohbet hattı sohbet hattı '; } ?>