Sayı tahmin oyunu

Merhaba arkadaşlar
bir sayı tahmin oyunu yaptım.
Ama bir şeyi yapamadım.
Mesela kullanıcı büyük giriyor “girdiğiniz sayıdan daha küçük bir sayı giriniz” diyor
sonra bir sayı daha giriyor fakat ilk başta girdiği sayıdan daha büyük sayı giriyor
mesela
10 giriyor
ikinci denemesinde 11 giriyor

11 girdiğişnde haktan düşmesini istemiyorum nasıl yapabilirim?

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

namespace TahminOyunu
{
    internal class Program
    {
        static Random rastgele = new Random();
        static void Main(string[] args)
        {
            Console.WriteLine("                             *******************SAYI TAHMİN OYUNU******************");
            Console.WriteLine();
            Console.WriteLine("OYUNA 70 PUANLA BAŞLAYACAKSINIZ. YANLIŞ TAHMİNİNİZDE PUANINIZDAN 10 SAYI EKSİLECEKTİR. ");
            Console.WriteLine();
            Console.WriteLine("60-70 Puan: 50 Bin TL Ödül\n"+ "40-50 Puan: Tatil Kazanma Hakkı\n" + "20-30 Puan: Kitap Hediye\n" + "10 Puan: Udemy Kurs ");
            Console.WriteLine();

            int tahmin = 0, hak = 7,puan = 70;
            int rastgeleSayi = rastgele.Next(10);
            char secim,secimİki;
            bool tahminn = false;


            for (; ; )

            {
                harf_secimİki:

                Console.WriteLine("Sayı giriniz");
                try
                {


                    tahmin = Convert.ToInt32(Console.ReadLine());
                }
                catch
                {
                    Console.WriteLine("Lütfen Rakam Giriniz (Devam Etmek İçin Enter Tuşuna   Basınız");
                    Console.ReadLine();
                    Console.Clear();
                    continue;
                }


                

                if (tahmin > rastgeleSayi)
                {
                    Console.WriteLine("Daha küçük bir sayı giriniz");
                    hak -= 1;
                    puan -= 10;
                    Console.WriteLine("Kalan Hakkınız: " + hak);
                    
                    continue;
                    


                }
                
                else if (tahmin < rastgeleSayi)
                {
                    Console.WriteLine("Daha büyük bir sayı giriniz");
                    hak -= 1;
                    puan -= 10;
                    Console.WriteLine("Kalan Hakkınız: " + hak);
                }
                else
                {
                    if (puan == 70 || puan == 60)
                    {
                        Console.WriteLine("TEBRİKLER.. 50 BİN TL KAZANDINIZ...");
                        Console.WriteLine("Puanınız: " + puan);
                        break;
                    }
                    else if (puan == 50 || puan == 40)
                    {
                        Console.WriteLine("SRİ LANKA'DA 1 HAFTA TATİL KAZANDINIZ..");
                        Console.WriteLine("Puanınız: " + puan);
                        break;
                    }
                    else if (puan == 30 || puan == 20)
                    {
                        Console.WriteLine("NiCOLAS MALEBRANCHE/HAKİKATIN ARAŞTIRILMASI KİTABINI KAZANDINIZ...");
                        Console.WriteLine("Puanınız: " + puan);
                        break;
                    }
                    else if (puan == 10)
                    {
                        Console.WriteLine("İSTEDİĞİNİZ BİR UDEMY KURSUNU HEDİYE EDİYORUZ..");
                        Console.WriteLine("Puanınız: " + puan);
                        break;
                    }
                    else
                    {
                        Console.WriteLine("Rastgele tutulan sayıyı bilemediniz.. Üzgünüm");
                        Console.WriteLine("Rastgele tutulan sayı: " + rastgeleSayi);
                        Console.WriteLine();
                    }
                }

                if (hak == 0)
                {
                    Console.WriteLine("Bilemediğiniz sayı: " + rastgeleSayi);
                harf:
                    
                    Console.WriteLine("Yeniden denemek ister misin? E/H");
                    try
                    {
                        secim = Convert.ToChar(Console.ReadLine());
                    }
                   
                    catch
                    {
                        Console.WriteLine("Lütfen Harf Giriniz (Devam Etmek İçin Enter Tuşuna   Basınız");
                        Console.ReadLine();
                        hak = 7;
                        goto harf;
                    }
                    if ( secim =='e' || secim == 'E')
                    {
                        Console.Clear();
                        hak = 7;
                        continue;
                    }
                    else if (secim =='h' || secim == 'H')
                    {
                        Console.WriteLine();
                        Console.WriteLine("Yine Bekleriz...");
                        Console.WriteLine("ÇIKMAK İÇİN ENTER TUŞUNA BASINIZ");
                        break;
                    }
                    else
                    {
                        Console.WriteLine("yanlış bir harf girdiniz.. Yeniden demek istermisin= E/H");
                        secimİki = Convert.ToChar(Console.ReadLine());

                        if (secimİki == 'E' || secimİki=='e')
                        {
                            Console.Clear();
                            goto harf_secimİki;
                        }
                        else if (secimİki == 'H' || secimİki=='h')
                                {
                Console.WriteLine();
                Console.WriteLine("Yine Bekleriz...");
                Console.WriteLine("ÇIKMAK İÇİN ENTER TUŞUNA BASINIZ..");
            }
                        
                    }
                   
                }

            }
            Console.ReadLine();
        }
    }
}



Aslında yazmayacaktım ama birinin artık şu gerçeği sana söylemesi lazım.

İyi güzel, eline sağlık.

Neden? Sayı tahmin oyunun kuralları mı değişti. Küçük girdi yada büyük girdi bir öncekini ona gre haktan düşmemesi gibi bir kuralın sebebi nedir?

İstemiyorsan bu kodu yazdığın gibi yapabilmen gerekir.

İlk girdiğin sayı duracak.

Bir önceki girdiğini başka bir değişkene alacaksın, istediğin koşula göre karşılaştırıp, koşuluna uyuyorsa haktan düşmeyeceksin.

İki değişken bir iki tane de if

Hepsi bu.

Ama ben bunun için yazmadım.

Asıl yazma sebebim.

A harfini biliyorsan, B harfini biliyorsan ve AB yazabiliyorsan ABA da yazabiliyor olman gerekir.

Sorduğun soruların bir çoğunda A var B var AB soruyorsun.

Yani ya harfleri bilmiyorsun, ya okuma yazma bilmiyorsun.

Bu kodu yazabilen birinin bunu yapamama ihtimali yok.

Yani iki muhakeyese ile çözülebilecek bir sorun.

Bunu dahi çözemiyorson, kusura bakma, hatta adamın hevesini kırma diyenler de kusuruma bakmasın.

Olmaz arkadaşım, senden olmaz. Boşa zorluyorsun.

Yani haklarını hangi koşulda eksilteceğini kodlayan biri, yeni bir koşul daha ekleyip o durum gerçekleştiğinde eksiltme veya eksiltmeme kararı ekleyemiyrsa.

Bu programlama bilgisi olmaması, yeni öğrenmesi ile alakalı değildir.

Ya temeli yanlış atmıştır, öğrenmeden ilerliyor merdiveneleri üçer beşer tırmanmaya çalışıyordur, yada muhakeme yeteneği yoktur.

Sorduğun soru basit, evet yapamamış da olabilirsin, evet kodu düzeltip buraya da koyabilirdim ama her sorunda eksiklerine bakıyorum, yok bir şeyler yanlış.

Yani ilk düğmeyi yanlış iliklersen diğerleri de yanlış gider.

Sen bir elini başının arasına al düşün.

Neden programlama öğreniyorum, ne amaçlıyorum. Öğrenmek için hangi adımları izledim iyice bir düşün.

Çünkü hiç bir programcı sana goto ile kodun içinde atlamanı tavsiye etmez mesela. BASIC dilinden beri neredeyse kimse goto kullanmaz. (istisnaları söylemiyorum makale yazarım o konuda)

Şu kodu yazıp, koşulu çeşitlendiremiyorsan temel öğrenme problemlerin var yada zihninde programlama işi oturmamış.

Bu edebiyat gibidir, kelimeleri bilirsin, okuma yazma bilirsin ama herkes edebiyatçı olamaz.

Edebiyatı geçtim, sen daha okuma yazma aşamasında tökezliyorsun.

Yani python biliyorum, şimdi c# a geçtim diyorsun da o zaman da söyledim geçememişsin.

Python da olsa C de olsa C++ da olsa C# da olsa, dephi de olsa, assembly de olsa karşılaştırma ve koşul aynı mantıktadır. Ama bir türlü o mantığı kuramıyorsan ve hala kuramıyorsan, bence dur düşün, olmuyorsa bırak. Bunda ayıp bir durum yok. Ben de resim yapamam mesela.

2 Beğeni

Oyuncuya verilen 2 cesit ipucu var: Alt sinir yukseltmek ve ust sinir alcaltmak.

Alt ve ust siniri takip edip bunlarin arasina dusmeyen tahminleri gozardi etmek gerekir.

1 Beğeni