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.