Bu uygulamada 0 ile 100 arasında rastgele (random) belirlenen sayı, kullanıcının belirlediği hak kadar tahmin edilebilecektir. Deneyebileceği hak sayısı azaldıkça ekranda gösterilecek ve bittiğinde kullanıcıya “Hakkınız kalmamıştır.” şeklinde uyarı verilecektir.
Tahmin Haklı Sayı Bulma Oyunu iki aşamadan oluşmaktadır. İlk aşamada kullanıcı tbhak nesnesine denemek istediği hak sayısını girer ve başla butonuna tıkladığında aşağıdaki işlemler sırasıyla gerçekleştirilir.
- tbhak nesnesinin Text özelliğinden hak sayısı alınır ve 0-100 aralığında olup olmadığı kontrol edilir. Eğer 0-100 aralığında ise lbkalanhak nesnesinin Text özelliğine yazılarak kullanıcının deneme hakkını görmesi sağlanır.
- 0-100 aralığında rastgele sayı üretilir. lbsayi nesnesinin Text özelliğine aktarılır ve tahmin edilecek sayıyı kullanıcının görmemesi için visible özelliği false yapılır.
- Alt ve üst sınır değerleri belirlenir.
- tbhak ve btBasla nesnelerinin kullanımları Enabled özelliği ile kısıtlanır.
Yani kullanıcı hak sayısını girdikten ve butona bastıktan sonra oyun başlamıştır ve oyunu sonlandırmadığı sürece hakkını değiştiremez.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | protected void btBasla_Click(object sender, EventArgs e) { lbmesaj.Text = ""; int hak = Convert.ToInt32(tbhak.Text); if ((hak < 1) || (hak > 100)) { lbmesaj.Text = "0-100 arasında bir değer olmalı."; return; } lbkalanhak.Text = hak.ToString(); Random rastgele = new Random(); int sayi = rastgele.Next(0, 100); lbsayi.Text = sayi.ToString(); lbsayi.Visible = false; lbalt.Text = "0"; lbust.Text = "100"; tbhak.Enabled = false; btBasla.Enabled = false; } |
İkinci aşamada ise kullanıcının kalan hakkı kontrol edilir ve her denemesinde azaltılır. Eğer kullanıcın hakkı bittiyse tahmin girişlerinin yapıldığı Textbox kısıtlanır ve btBul butonu gizlenir. Bu şekilde kullanıcı daha fazla deneme yapamaz.
Kullanıcının hakkı hala varsa alt ve üst sınırlar içinde olup olmadığı kontrol edildikten sonra tahmin edeceği sayıya yaklaşıp yaklaşmadığı alt ve üst sınır değerleri ile yönlendirilir. Kullanıcı tahmin edilecek sayıdan daha yüksek bir değer girdiyse artık en üst sınırımız bu sayıdır. Ya da tahmin edilecek sayıdan daha az bir değer girdiyse alt sınırımız artık o sayı olmuştur. Bu şekilde aralık daraltılarak kullanıcı tahmin edilecek sayıyı bulması için yönlendirilir.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | protected void btBul_Click(object sender, EventArgs e) { int alt, ust, tahmin, sayi, kalanhak; kalanhak = Convert.ToInt32(lbkalanhak.Text); if (kalanhak <= 1) { lbmesaj.Text = "hakkınız bitmiştir"; lbkalanhak.Text = "0"; tbtahmin.Enabled = false; btBul.Visible = false; lbsayi.Visible = true; return; } alt = Convert.ToInt32(lbalt.Text); ust = Convert.ToInt32(lbust.Text); sayi= Convert.ToInt32(lbsayi.Text); tahmin = Convert.ToInt32(tbtahmin.Text); if ((tahmin < alt) || (tahmin > ust)) { lbmesaj.Text = "aralıkta bir değer girin"; return; } if (tahmin > sayi) lbust.Text = tahmin.ToString(); else if (tahmin < sayi) lbalt.Text = tahmin.ToString(); else lbmesaj.Text = "TEBRİKLER!"; lbkalanhak.Text = (kalanhak - 1).ToString(); tbtahmin.Text = ""; } |