C# İle Adam Asmaca Oyunu

Bu derste C# ile basit bir adam asmaca oyunu yapalım.

Bu derste C# ile basit bir adam asmaca oyunu yapalım.

Bilinen bir harfi tekrar girerseniz hatalı olmuş oluyor aynı harflerin girilmesini engellemedim. Ama siz şöyle yapabilirsiniz. Bi combobox ekleyin girilen harfler o comboya eklensin. Daha sonra harf girip entera bastığında combo da yoksa comboya ekleyip aşağıdaki işlemleri yaptırabilirsiniz.


//txt deki kelimeleri buraya çekeceğiz

   //Bunlar global değişken oldukları için  

   //  public Form1()

   //      

   //        InitializeComponent();

   //  } bunun altına yazılacaklar

        List<string> kelimeler = new List<string>();

        //Kelimelerin dizisinden rastgele bir kelime seçebilmek için random sınıfı tanımlıyoruz.

        Random rnd = new Random();

        //tutulan index random sayıya göre kelime tutmamızı sağlıyor

        int tutulanIndex;

        //kelimenin uzunluğuna göre labellerimizi gizleyip yada göstereceğiz

        int tutulanUzunluk;

        //şu kadar tahminde bilmesine gerek yok bilene kadar tahmin yapıyoruz.

        int tahminSayisi, bilmeSayisi;



    //Tahmin yapacağımız textboxun keydown olayına

   //tahmin ettiğimiz textboxta entera basılmışsa

            if (e.KeyCode == Keys.Enter)

            {

                //kelimemizin uzunluğuna kadar döngü açıyoruz.

                for (int j = 0; j < tutulanUzunluk; j++)

                {

                    //tutulan kelimeyi kelime değişkenine aktarıyoruz.

                    string kelime = kelimeler[tutulanIndex];

                    //tahmin ettiğimiz harf kelime değişkenimizde varsa

                    if (txtTahmin.Text == kelime[j].ToString())

                    {

                        //bilme sayısını 1 arttırıyoruz.

                        bilmeSayisi++;

                        //j değişkeni 0 dan başladığı için 1 arttırıp bilinen harfi şarta göre labellerdeki kutucuğa yazdırıyoruz.

                        if ((j + 1) == 1)

                        {

                            lblKarakter1.Text = txtTahmin.Text;

                        }

                        else if ((j + 1) == 2)

                        {

                            lblKarakter2.Text = txtTahmin.Text;

                        }

                        else if ((j + 1) == 3)

                        {

                            lblKarakter3.Text = txtTahmin.Text;

                        }

                        else if ((j + 1) == 4)

                        {

                            lblKarakter4.Text = txtTahmin.Text;

                        }

                        else if ((j + 1) == 5)

                        {

                            lblKarakter5.Text = txtTahmin.Text;

                        }

                        else if ((j + 1) == 6)

                        {

                            lblKarakter6.Text = txtTahmin.Text;

                        }

                    }

                }

                //tahmin ettiğimizde tahmin edilen texti seçip kullanıcının daha az işlem yapmasını sağlıyoruz. SelectAll() metodu şudur:Tüm texti seç.

                txtTahmin.SelectAll();

                //her tahmin edişimizde tahmin sayısını 1 arttırıyoruz.

                tahminSayisi++;

                //label11 e yani tahmin sayısını gösteren labele tahmin sayısını aktarıyoruz.

                label11.Text = tahminSayisi.ToString();

                //bilme sayısı kelimemize eşitse uzunlukları aynıysa

                if (bilmeSayisi == tutulanUzunluk)

                {

                    //kelimeyi bilmişse mesaj verdir.

                    MessageBox.Show("Kelimeyi " + tahminSayisi.ToString() + " Tahminde Bildiniz.");

                }

            }



  //Formun loadına

   Getir();



  //formun loadının altına

        private void Getir()

        {

            //kelimelerin yolunu exenin olduğu yer olarak belirtiyoruz.

            string yol = Application.StartupPath + "kelimeler.txt";

            //Türkçe Dil Desteğini kullanarak kelimeler.txt yi oku. Encoding.GetEncoding(1254) Türkçe Dil Desteği Sağlar.

            StreamReader oku = new StreamReader(yol, Encoding.GetEncoding(1254));

            //kelimeler txt sinin satır sonunda değilse

            while (!(oku.EndOfStream))

            {

                //kelimeler dizisine ekle

                kelimeler.Add(oku.ReadLine());

            }

            //kelimeler dizisinden rastgele kelime seçiyoruz.

            tutulanIndex = rnd.Next(0, kelimeler.Count);

            //tutulan uzunluğa göre labelleri göstereceğimiz için length ini alıyoruz.

            tutulanUzunluk = kelimeler[tutulanIndex].Length;

            //uzunluğa göre labellerimizi görünür yapıyoruz.

            if (tutulanUzunluk == 3)

            {

                lblKarakter3.Visible = true;

            }

            else if (tutulanUzunluk == 4)

            {

                lblKarakter3.Visible = lblKarakter4.Visible = true;

            }

            else if (tutulanUzunluk == 5)

            {

                lblKarakter3.Visible = lblKarakter4.Visible = lblKarakter5.Visible = true;

            }

            else if (tutulanUzunluk == 6)

            {

                lblKarakter3.Visible = lblKarakter4.Visible = lblKarakter5.Visible = lblKarakter6.Visible = true;

            }

        }



     //yeni oyun buttonumuzun click eventine

 //labellerin textlerini "_"  yap.

            lblKarakter1.Text = lblKarakter2.Text = lblKarakter3.Text = lblKarakter4.Text = lblKarakter5.Text = lblKarakter6.Text = "_";

           //gerekli ayarları sıfırla.

            txtTahmin.Text = "";

            tahminSayisi = 0;

            label11.Text = "0";

            bilmeSayisi = 0;

            //labelerin görünürlüğünü kapat.

            lblKarakter3.Visible = lblKarakter4.Visible = lblKarakter5.Visible = lblKarakter6.Visible = false;

            //getir metodunu çağır.

            Getir();

            //tahmin textimize imleci odakla.

            txtTahmin.Focus();


  • Etiketler;
Yorum Yaz

Yorum yazabilmek için üye girişi yapmanız gerekiyor!

Tahmin sayısını sınırlandırmamız mümkün mü?
Tabiki mümkün if ile yapabilirsiniz.

Yukarı Git