Csharp ile Sayı Tahmin Edelim

Bu sayı tahmini alışıla gelenlerden biraz farklı olacak. Bilgisayar otomatik olarak bir sayı tutacak ve bizim bu sayıyı tahmin ederken gereken yerlerde ipucu verecek.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace sayitahmini
{
    class Program
    {
        public static int tahminsayi = new int();
        public static int i, j;
        public static string sayi, usayi;
        public static Random sayiuret = new Random();
        public static DateTime zaman1 = DateTime.Now;
        public static DateTime zaman2 = DateTime.Now;
        static int puan = 100;
        static void kontrol()
        {
            for (i = 0; i < 4; i++)
            {
                for (j = 0; j < 4; j++)
                {
                    if (sayi == usayi[j])
                    {
                        if (i != j)
                        {
                            Console.WriteLine("İpucu :");
                            Console.WriteLine( "{0}",sayi);
                        }
                    }
                }
            }
        }
        static void sonuctablosu()
        {
           zaman2=DateTime.Now;
           Console.WriteLine("Bitiş Zamanı :{0}",zaman2);
            TimeSpan gecenzaman =zaman2 -zaman1 ;
            Console.WriteLine("Doğru Bildiniz...Tebrikler!!!"); 
    Console.WriteLine("{0}.Tahminde Doğru Sonucu Buldunuz...",tahminsayi);
            Console.WriteLine("Toplam Aldığınız Puan :{0}",puan);
            Console.WriteLine("Tam Olarak Sonucu {0}:{1}:{2} zaman süresinde Bildiniz...",gecenzaman.Hours,gecenzaman.Minutes,gecenzaman.Seconds);

        }
        static void Main(string[] args)
        {
            zaman1 = DateTime.Now;
            Console.WriteLine("Başlama Zamanı :{0}", zaman1);
            tahminsayi = 1;
            usayi = Convert.ToString(sayiuret.Next(1000, 9999));
            Console.WriteLine(usayi);         
            do
            {
                Console.WriteLine("Sayı Giriniz:");
                sayi = Convert.ToString(Console.ReadLine());
                if (sayi == usayi)
                {
                    sonuctablosu();
                    break;
                }
                else
                {
                    tahminsayi++;
                    puan = puan - 10;
                    kontrol();
                }
            } while (true);
        }
    }
}

Burada ilk önce “Random” fonksiyonu ile “1000- 9999” arasında rastgele bir sayı tutuyoruz .Daha sonra Do-While döngüsüyle oyuncudan sayı tahmininde bulanmasını istiyoruz. Eğer doğru bilirse oyuncuya genel bilgiler verip programı sonlandırıyoruz.

Çalışma Örnek: Rastgele girilen sayı “1568” olsun ve kullanıcı “1702” sayısını girdiği zaman “1 – 1” eşit ve binler basamağında olduğu için program herhangi bir ipucu vermeyecek ve tekrar bir sayı istenecek. Eğer “7102” girilmiş olsa idi “1-1” eşit fakat biri binler biri yüzler basamağında olduğu için yani rakamın yeri değişik olduğu zaman bize ipucu olarak bu sayıyı verecektir.

Bir sonraki örnek çalışmamızda görüşmek üzere.

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir