Basit Bir Oyun Projesi İle C# [4]

      Merhaba, oyun projemizde sona yaklaştık. Şimdi kullanıcının düğmelere bastığı anda çalıştırılacak olan fonksiyonlara göz atacağız. Neden bahsettiğimizi bilmiyorsanız sizi şöyle alalım.

      Visual Studio'yu açarak oyun arayüzünü görüntüleyelim. Arayüzde, kullanıcının seçeceği düğmelerden biri üzerine çift tıklayarak düğmeye basıldığı anda çalıştırılacak kodu görüntüleyelim.

      Düğmeye basıldığı anda, öncelikle basılan düğmeye tekrar basılmasını önlemek için, düğmenin "etkin" olan kullanılabilirlik özelliğini "pasif"e çevirmemiz gerekiyor. Sonrasında ise, kullanıcının kaç düğmeyi pasif hale getirdiğini, yani hedef sayıya ulaşmak için kaç seçim yaptığını denetleyeceğiz. Eğer kullanıcı 2 düğmeye tıkladıysa hedef sayıya ulaştığını düşünüyor olmalıdır. Bu durumda yeni bir tur başlar. Eğer kullanıcı henüz sadece 1 düğmeye tıkladıysa 2. düğmeye tıklamasını bekleyeceğiz.

      

      Fonksiyonu incelediğimizde ilk satırda düğmeyi pasifleştirdiğimizi, 2. satırda ise bir başka fonksiyon çağırdığımızı görüyoruz. Çağırılan fonksiyona bakalım:



      Fonksiyon içinde, öncelikle hedef sayıyı bir tamsayı değişkenine dönüştürüyoruz. Sonra basılan düğme sayısını bilmek için başka bir fonksiyon çağırıyoruz.



      Kaç düğmeye basıldığını bulduğumuz fonksiyon kendini anlatıyor. Artık bu kodları açıklamama ihtiyacını yok:) Eğer en baştan buraya kadar okuduysanız tabi.

      "VerileriDenetle" fonksiyonuna dönelim. 3. satırda seçilen sayıların toplamlarını buluyoruz. Dikkat ederseniz bu iş için de başka bir fonksiyon çağırmış bulunmaktayız. Bu fonksiyona bakalım.



      Yukarıdaki ekran resmindeki mantık gayet basit. Eğer bir düğme "pasif" ise, kullanıcı düğmeye basmış demektir. Bu durumda düğmenin metnini sayıya çevirip seçilen sayıların toplamını tutan değişkene eklememiz yeterlidir.

      Şimdi tekrar "VerileriDenetle" fonksiyonuna dönelim. 4. satırdan başlayan bir "if" cümlesi görüyoruz. Bu "eğer" cümlesi, kullanıcının kaç düğmeye basmış olduğunu dikkate alıyor. Eğer kullanıcı 2 düğmeye basmış ise hedef sayıya ulaştığını düşünüyor olmalıdır. Eğer henüz 1 düğmeye bastıysa 2. düğmeye basmasını bekleyeceğiz. Öyleyse sadece kullanıcının 2 düğmeye basmış olduğu durum için işlem yapacağız.

      Şimdi "if" cümlesindeki kodlara yakından bakalım.

            if (basilanDugmeSayisi == 2) // 2 düğme seçildiyse..
            {
                if (hedefSayi == secilenSayilarinToplami) /* Seçilen düğmelerin ifade ettikleri sayıların toplamı hedef sayıya eşitse..*/
                {
                    label2.Text = "Deneme Sayısı: " + (int.Parse(label2.Text.Replace("Deneme Sayısı: ", "")) + 1).ToString(); // Deneme sayısını 1 artırıyoruz..
                    label3.Text = "Başarılı Toplam Sayısı: " + (int.Parse(label3.Text.Replace("Başarılı Toplam Sayısı: ", "")) + 1).ToString(); // Başarılı toplam sayısını da 1 artırıyoruz..
                }
                else // Kullanıcının seçtiği sayıların toplamı hedef sayıya eşit değilse..
                {
                    label2.Text = "Deneme Sayısı: " + (int.Parse(label2.Text.Replace("Deneme Sayısı: ", "")) + 1).ToString(); // Sadece deneme sayısını 1 artırıyoruz..
                }
                yeniTur(); // Basılan düğme sayısı 2 olduğu için yeni bir tur başlatıyoruz..
            }

      Şimdi "Button2" nesnesi için gerekli kodları hazırladık. Tahmin ettiğiniz üzere kullanıcının seçimine açık olan tüm düğmeler için aynı kodları kullanmamız gerekmektedir. Öyleyse diğer bir düğme için hazırlanacak kodları da örnekledikten sonra kalan düğmelerin kodlarını size bırakıyorum.

        private void button3_Click(object sender, EventArgs e)
        {
            button3.Enabled = false;
            verileriDenetle(int.Parse(button3.Text));
        }

      Dikkat ederseniz 3 numaralı düğmeye ait fonksiyonun 2 numaralı düğmeye ait fonksiyondan tek farkı, pasifleştirilen düğme oluyor. 2 numaralı düğmeye basıldığında 2 numaralı düğme pasifleşirken, 3 numaralı düğmeye basıldığında 3 numaralı düğme pasifleşmektedir.

      Oyun projemiz bu noktada tamamlandı. Bence harika oldu, ellerinize sağlık:) Umarım baştan sonra kadar gelmiş ve anlatımlardan memnun kalmışsınızdır.

      C# hakkında sormak istediğiniz her türlü soru için bu blog altındaki yorum kısımlarını ve gokaysatir@gmail.com mail adresimi kullanabilirsiniz.












Hiç yorum yok:

Yorum Gönder