Sayı Tahmini Oyunu

Merhaba arkdaşlar bugun C# da 4 levelden oluşan bir Sayı tahmini oyunu yapalım...

Merhaba arkdaşlar, bugün C#'da 4 levelden oluşan bir sayı tahmini oyunu yapalım. Bu programın aynısını Visual Basic'te yapmıştım ve Visual Basic bölümünde ders olarak yayınlamıştım. Onu C#'a da çevirdim.

İlk önce yeni bir C# projesi yaratıyoruz, Windows Application olarak. Formumuza 1 adet buton, 3 adet textbox, 1 adet label ve 1 adet listbox koyalım. Form görüntüsünü aşağıdaki gibi yapabiliriz. Formumuzun üstünde kullanılan butonların textboxların isimlerini değiştirdiğim için programın içinde kullandığım isimleri form üzerinde gösterdim..



Kod kısmına geldiğimizde ilk önce public partial class�ımızın içine:


int level = 1;

 int tutulan;



değişken tanımlamalarını yapıyoruz, çünkü bu değişkenler her zaman ortak kullanacağımız değişkenler olduğundan burada tanımlıyoruz.

Daha sonra random sayı oluşturmak için random methodunu yazıyoruz fakat random methodonu da burada tanımlıyoruz. Eğer form_load kısmında tanımlamış olsaydık bize hep aynı random sayıyı verecekti. Eğer butonun içine tanımlamış olsaydık her butona bastığımızda random sayının değeri değişecek ve random sayıyı sabit tutamıyor olacaktık. Bundan dolayı random methodomuzu burada tanımlıyoruz. Tabi oyunumuz 4 levelden oluşacağı için ve her levelde bizim farklı random sayılara gerek duyacağımızdan dolayı bu random methodunu bir fonksiyon olarak burada tanımlayıp her levelin bitişinde bu random sayıyı yeniden oluşturmak için bu oluşturduğumuz fonksiyonu çağırmamız gerekiyor.

Evet arkadaşlar, bu kısım çok önemliydi. O zaman fonksiyonumuzu yine public partial class'ımızın içinde tanımlıyoruz ve şu şekilde:


void sayiuret()   // fonksiyon adımız sayiuret

        {

            Random rnd = new Random();  //random methodu

            int a = rnd.Next(0, 100);             // 0-100 arasında random bisayı atama

            tutulan = a*level;                       //levele göre sayı oluşturma..mesela //levelimiz 1 iken tutulan sayı // 1*(0 ile 100 arasında bi sayı)=0-100 arasında bi sayı.. level=2 ise  

                                                                //tutulan=2*(0 ile 100 arasında sayı)=0-200 arasında bir sayı �gibi

        

        }



Şimdi formumuzun form_load bölümündeki kodlamamıza. Burada formumuz yuklendiğinde random sayımızın oluşması gerekiyor. Zaten biz bu random sayıyı yukarıda fonksiyon içinde çağırmıştık. O zaman form_load bölümünde bu fonksiyonu seçmemiz gerekiyor. Form_load bölümündeki kodlarımız da aşağıdakiler:


private void Form1_Load(object sender, EventArgs e)

        {

                        //textbox1�e girilen sayı değerini kullanabilmesi için stringe çevirmek geriyor

            textBox1.Text = level.ToString(); 

            sayiuret();          //yukarıda tanımladığımız sayiuret fonk. Çağırma



        }



Evet, artık butonumuzun içindeki kod kısmına gelebiliriz.


private void btnTahmin_Click(object sender, EventArgs e)

        {

            int tahmin;                                                                      // kendi tahmin ettiğimiz sayıyı yani tektboxa girdiğimiz sayıyı tanımladık

            tahmin = Convert.ToInt32(txtTahmin.Text);                  //ve bu sayıyı integer değerine çevirdik

            if (level <= 4)                                                             //levelimizi 4 demiştik yani 4 e eşit ve 4 den küçükse

            {

                if (tahmin < tutulan)   //tahminimiz tutulan sayıdan küçükse YUKARI mesajını verecek

                {

                    lblYon.Text = "Yukari";

                }

                if (tahmin > tutulan)  //tahminimiz tutulan sayıdan küçükse AŞA?I mesajını verecek

                {

                    lblYon.Text = "Aşağı";

                }

                if (tahmin == tutulan)  //tahminimiz tutulan sayıya eşitse KAZANDINIZ  mesajını verecek

                {

                    level += 1;     //leveli 1 arttıracak

                    lblYon.Text = "Kazandiniz... Level " + level + "'ye geçtiniz..";   

                    LbSonuc.Items.Add(level - 1 + ". Leveli Kazandınız..");   //listboxımıza ekleyecek

                    sayiuret();    // ve tekrar random methodumuzun tanıtığımız fonksiyonumuzu çağırdk

                }

                textBox1.Text = level.ToString();  // levelımızı gösteren textbox

            }

 Else    // level 4 den buyukse oyun bitti mesajını gösterecek

            {

                lblYon.Text = "OYUN BİTTİ";

             

                MessageBox.Show("Oyun Bitti...");

             }

          }




Kodlamalarımız bu kadar, programımızı çalıştırdığımız zaman aşağıda verd,ğim görüntülerdeki gibi olacak:








Hepinize iyi çalışmalar...
  • Etiketler;
Yorum Yaz

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

Gerçekten eline sağlık keşke bende yapabilsem ama bu gidişle programlamayı öğrenemiycem galiba:uzul:
güzel program olmuş eline sağlık.. yanlız ben tahmin butonuna tıklamadan enter tuşuyla ulaşmak istiyorum. yani tahmine tıklamak yerine entere basarak çalıştıramaz mıyız tahmin butonunu?
bende yalin gibiyim.belkide ondan daha kötüyüm
Çok beğendim elinize sağlık
Yalnız ben koda çalışırken bişeyi anlayamadım.Textbox1 e biz mi hangi levelde oynamak istediğimizi giriyoruz?Oraya 4 girersek mesela direk 4.leveldan mı başlayacak oyun
bu sene c# görcez programlarda yardım edebilirmisiniz acaba
ya ben bunun aklından sayı tutma oyunu yapmak istiyorum .... :-dusun:nasıl yapcam yeni basladım c# da offfffffffff senin bu anlattıgına baktım cok karısık geldi bana :S:S
kodda biraz mantık hataları var a*level dediğinde mesela random sayı 5 olsun bunu level 2 ile çarparsan sonuç 10 olur random sayı 6 olsun bunu 2 ile çarp sonuç 12 olur yani gene 100 adet sayı var level birdede 100 adet sayı vardı 1 ve 2 level aynı level 3 te aynı sorun yok ama genede 3 ün katları olucak onu daha önce bir if le yapıp rnd nin aralıklarını level e göre yeniden düzenlersen daha mantikli ve zor bir oyun olur
elinize saglık ama resimler görünmüyor
meraba ben öbncelikle program çok güzel olmuş...benim sayı tahmin ile ilgili bir ödevim var ama algoritma görmeden direk c# dersi görmeye başladık bundan dolayı yazamıyorum kodları lütfen yardımcı olurmusunuz ?
kodları yazdım ama button1_click de hata veriyo taplam 2 hata var button1_click yerine ne yazsam olmuyo ne yapmalıyım ?

Yukarı Git