C# ile Sayı Tahmin Oyunu

Site Haritası

Merhaba arkadaşlar, bu makalemizde C# console ile bir sayı tahmin uygulaması yapalım.

Visual Studio 2015 kod editörümüzü açalım. New project diyerek yeni bir proje açalım.

Gelen ekranda Visual C# -  Console Application seçelim ve proje ismini belirleyip Ok butonuna basalım

Karşımıza böyle bir ekran geldikten sonra projemizi yazmaya başlıyoruz.

Kodlarımızı Static void Main(String[] args) fonksiyonu içerisine yazacağız.

Burada yaptığımız işlemlerden bahsedelim. Console.Clear(); fonksiyonu ile uygulama her başladığında console ekranını temizliyoruz.

Ardından int GirilenSayi; kodu ile GirilenSayi adında bir integer değişken oluşturduk.

Ardından ekrana bir mesaj yazdırdık ve kullanıcıdan tahmin edilmesini istediği sayıyı girip Enter tuşuna basmasını istedik.

Burada;

GirilenSayi = int.Parse(Console.ReadLine()); kodu ile kullanıcının girdiği sayı değeri GirilenSayi değişkenine aktarılıyor.

for (;;)

{
        GirilenSayi = int.Parse(Console.ReadLine());
        if (GirilenSayi < 0 || GirilenSayi > 250)
       {
            Console.Write("Lütfen 0 ile 250 Arasında Bir Sayı Girip Enter Tuşunu Basınız: ");
       }
      else
      {
            break;
      }
}

Bunu yaparken bir sonsuz for döngüsü ile kullanıcının doğru aralıkta sayı girip girmediğini kontrol etmeye çalıştık. Kullanıcının girdiği sayı istediğimiz değerler arasında olmadığı sürece döngü devam edecek ve kullanıcıdan yeniden sayı girmesi istenecek. Kullanıcı istenilen değerler arasında sayı girdiği zaman Break; komutu ile döngüden çıkılıyor.

Daha sonra;

Console.WriteLine("Girilen Sayı: " + GirilenSayi); 
Random Rastgele = new Random(); 

Kullanıcının girdiği sayı ekrana yazdırılıyor. Uygulamanın rastgele sayı üretebilmesi için Random() sınıfından yararlanılıyor. 

Console.WriteLine("İlk Tahmin İçin Enter Tuşuna Basınız..");
Console.ReadKey();
int altsinir = 0;
int ustsinir = 251;

Bilgisayardan ilk tahmini yapması için enter tuşuna basılması bekleniyor. altsinir ve ustsinir değişkenleri ile tahmin edilecek sayı aralığı belirleniyor.

Daha sonra for döngüsü ile kaç kere tahmin hakkına sahip olduğunu belirleyerek döngüye alıyoruz. Bu uygulamada 13 hakkı olmasını istiyoruz. Döngü içerisine girdiğinde bilgisayardan int TahminEdilen = Rastgele.Next(altsinir, ustsinir); kodu ile alt sinir ve üst sınır değerleri arasında rastgele bir sayı üretmesini yani tahminde bulunmasını sağlıyoruz. Ve tahmini bi alt satırdaki Console.WriteLine("Tahmin Edilen Sayi:" + TahminEdilen); kodu ile ekrana yazdırıyoruz.

Daha sonra;

string BasilanHarf;
Console.Write("Sizin Tuttuğunuz Sayı Tahmin Edilen Sayı ile Aynı ise 'D', Küçükse 'K', Büyükse 'B' Tuşuna Basınız : ");

bu kod ile kullanıcıdan bilgisayarı uyarması için tahmininin büyük ya da küçük olduğunu belirtiyoruz. Klavyeden basacağımız harfi ise BasilanHarf değişkenine aktaracağız.

Tekrar bir sonsuz for döngüsü oluşturuyoruz. Burada kullanıcının yaptığı yönlendirmenin doğru olup olmadığını kontrol ediyoruz. Eğer kullanıcı yanlış bir yönlendirme yapar ise yeniden bir tuşa basarak doğru yönlendirmesini istiyoruz. Dikkat ederseniz if koşullarında hem büyük harf hemde küçük harf kontrolü yapıyoruz. Eğer yönlendirme doğru ise yine break; komutu ile döngüden çıkıyoruz.

Daha sonra döngü dışında basılan harfe göre tahmin edilecek aralığı daraltıyoruz. Örneğin;

Kullanıcı sayı olarak 150 değerini girdi diyelim. Bilgisayar ilk tahmin olarak 60 sayısını versin. Kullanıcı klavyeden B tuşuna basacak ve yeni alt sinir 60 olarak ayarlanacak.

Eğer bilgisayar doğru tahminde bulunduysa Kullanıcı D harfine basacak ve ekrana kaçıncı tahminde doğru bulunduğu döngü değişkeni olan i ile belirlenip ekrana yazdırılacak.

Eğer  i değişkeni 14 değerine ulaştıysa bilgisayarın tahmin hakkı bitecek ve ekrana Game Over yazılacak.

Daha sonra;

Console.Write("Çıkış için 'Ç' basıp Enter Tuşuna basınız. Devam etmek için başka bir tuşa basınız: ");
cikis = Console.ReadLine(); 

Uygulamadan çıkmak isteniyorsa 'Ç' harfine basılması için ekrana mesaj yazdırılacak ve en başta oluşturulan cikis değişkenine değer atılacak. Uygulama Do While döngüsü içerisinde yapılıyor. While koşulu olarak da cikis değişkeninin değeri bulunuyor eğer cikis değişkeni Ç değerini aldıysa uygulama kapanacak.

while (cikis != "ç" && cikis != "Ç");

Bütün kodlar aşağıda verilmiştir. Uygulama bu kadar arkadaşlar.

Takıldığınız ve ya anlamadığınız kısımlar olursa yoruma yazmanızı bekliyorum. İyi çalışmalar.

 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace SayiTahminEkrani
{
    class Program
    {
        static void Main(string[] args)
        {
            string cikis;
            do
            {
                Console.Clear();
                int GirilenSayi;
                Console.Write("Sayı Bulma Oyununa Hoşgeldiniz.. \n0 ile 250 Arasında Bir Sayı Girip Enter Tuşunu Basınız:  ");
                for (;;)
                {
                    GirilenSayi  = int.Parse(Console.ReadLine());
                    if (GirilenSayi < 0 || GirilenSayi > 250)
                    {
                        Console.Write("Lütfen 0 ile 250 Arasında Bir Sayı Girip Enter Tuşunu Basınız:  ");
                    }
                    else
                    {
                        break;
                    }
                }
                
                Console.WriteLine("Girilen Sayı: " + GirilenSayi);
                Random Rastgele = new Random();
                Console.WriteLine("İlk Tahmin İçin Enter Tuşuna Basınız..");
                Console.ReadKey();
                int altsinir = 0;
                int üstsinir = 251;
                int i;
                for ( i = 1; i <= 13; i++)
                {

                    int TahminEdilen = Rastgele.Next(altsinir, üstsinir);
                    Console.WriteLine("Tahmin Edilen Sayi:" + TahminEdilen);

                    string BasilanHarf;
                    Console.Write("Sizin Tuttuğunuz Sayı Tahmin Edilen Sayı ile Aynı ise 'D', Küçükse 'K', Büyükse 'B' Tuşuna Basınız :  ");
                    for (;;)
                    {

                        BasilanHarf = Console.ReadLine();
                        if (BasilanHarf == "K" || BasilanHarf == "B" || BasilanHarf == "D" || BasilanHarf == "k" || BasilanHarf == "b" || BasilanHarf == "d")
                        {
                            if (BasilanHarf == "B" || BasilanHarf == "b")
                            {
                                if (GirilenSayi < TahminEdilen|| GirilenSayi == TahminEdilen)
                                {
                                    Console.Write("Yanlış Yönlendirdiniz.. Lütfen Doğru Tuşa Basınız: ");
                                }
                                else
                                {
                                    break;
                                }
                            }
                             else  if (BasilanHarf == "K" || BasilanHarf == "k")
                            {
                                if (GirilenSayi > TahminEdilen||GirilenSayi==TahminEdilen)
                                {
                                    Console.Write("Yanlış Yönlendirdiniz.. Lütfen Doğru Tuşa Basınız:  ");

                                }
                                else
                                {
                                    break;
                                }
                            }
                            else if(BasilanHarf == "D" || BasilanHarf == "d")
                            {
                                if (GirilenSayi != TahminEdilen)
                                {
                                    Console.Write("Yanlış Yönlendirdiniz.. Lütfen Doğru Tuşa Basınız:  ");

                                }
                                else
                                {
                                    break;
                                }
                            }
                            
                        }
                        else
                        {
                            Console.Write("Lütfen Sizin Tuttuğunuz Sayı Tahmin Edilen Sayı ile Aynı ise 'D', Küçükse 'K', Büyükse 'B' Tuşuna Basınız :  ");

                        }
                    }

                    if(BasilanHarf == "B" || BasilanHarf == "b")
                    {
                        altsinir = TahminEdilen + 1;
                      
                    }
                    else if (BasilanHarf == "K" || BasilanHarf == "k")
                    {
                        üstsinir = TahminEdilen; 
                    }
                    else if (BasilanHarf == "D" || BasilanHarf == "d")
                    {
                        Console.WriteLine("Bilgisayar " + i + ". Denemede Doğru Tahminde Bulunmuştur..  ");
                        break;
                    }
                }
                if (i == 14)
                {
                    Console.WriteLine("Game Over.. ");
                }
             
                Console.ReadKey();

                Console.Write("Çıkış için 'Ç' basıp Enter Tuşuna basınız. Devam etmek için başka bir tuşa basınız:  ");
                cikis = Console.ReadLine();
                

            } while (cikis != "ç" && cikis != "Ç");
            
        }
    }
}

 

0 0 vote
Article Rating
Subscribe
Bildir
guest
1 Yorum
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
Mert
Mert
1 ay önce

Çok güzel çalışma elinize sağlık

1
0
Düşüncelerinize bayılırım, lütfen yorum yapın.x
()
x