Form application tahmin oyunu programı

34YunusEmre

Decapat
Katılım
8 Ocak 2019
Mesajlar
34
Şimdi 0 ile 100 arası rastgele sayı üreten bir sayıyı, 10 hak vererek aşağı yukarı yönlendirmeyle kaç kerede tahmin ettiğini gösteren bir tahmin oyunu yapmaya çalıştım. For döngüsü ve while ile denedim ama olmadı. Hak kısmında sürekli 1 hakkın kaldı diyor.
 
Önceki tahmine kullanıcı "arttır" derse, rastgele sayının, önceki tahminden yüksek olup olmadığını kontrol edip, eğer yüksekse kullanıcıya sayıyı sorabilirsiniz. Kontrol aşamasını while döngüsü ile yapmalısınız ve bu while döngüsünden çıkış şartı sayının önceki tahminden büyük veya küçük olduğuna bağlı olacak. C# bilgim yok ama isterseniz C kodunu yazabilirim.
 

Dosya Ekleri

  • Ekran Alıntısı.PNG
    Ekran Alıntısı.PNG
    21,1 KB · Görüntüleme: 88
  • Ekran Alıntısı.PNG
    Ekran Alıntısı.PNG
    21,1 KB · Görüntüleme: 63
Bu şekilde sürekli sayıyor nerede hata yaptım bulamadım.
Sıkıntı şu ki, siz muhtemelen bu kodu bir konsol uygulaması örneğine bakarak yaptınız ama sizin uygulamanız form uygulaması. Eğer butona bastıkça giriş almasını istiyorsanız while kullanmaya gerek yok, şu an yazdığınız kod bir kerede çalışıp bitiyor çünkü ReadLine() gibi kullanıcıdan girdi bekleyen bir şey yok.

Oradan while döngüsünü çıkartın, ayrıca tahmin = Convert.ToInt32(textBox1.Text); satırından sonraki hak--; ifadesini kaldırın. Zaten her bloğun içinde azaltıyorsunuz, o orada olmamalı.

Ayrıca kodu bu şekilde paylaşırsanız daha iyi olur:
 
Sıkıntı şu ki, siz muhtemelen bu kodu bir konsol uygulaması örneğine bakarak yaptınız ama sizin uygulamanız form uygulaması. Eğer butona bastıkça giriş almasını istiyorsanız while kullanmaya gerek yok, şu an yazdığınız kod bir kerede çalışıp bitiyor çünkü ReadLine() gibi kullanıcıdan girdi bekleyen bir şey yok.

Oradan while döngüsünü çıkartın, ayrıca tahmin = Convert.ToInt32(textBox1.Text); satırından sonraki hak--; ifadesini kaldırın. Zaten her bloğun içinde azaltıyorsunuz, o orada olmamalı.

Ayrıca kodu bu şekilde paylaşırsanız daha iyi olur:

Sıkıntı şu ki, siz muhtemelen bu kodu bir konsol uygulaması örneğine bakarak yaptınız ama sizin uygulamanız form uygulaması. Eğer butona bastıkça giriş almasını istiyorsanız while kullanmaya gerek yok, şu an yazdığınız kod bir kerede çalışıp bitiyor çünkü ReadLine() gibi kullanıcıdan girdi bekleyen bir şey yok.

Oradan while döngüsünü çıkartın, ayrıca tahmin = Convert.ToInt32(textBox1.Text); satırından sonraki hak--; ifadesini kaldırın. Zaten her bloğun içinde azaltıyorsunuz, o orada olmamalı.

Ayrıca kodu bu şekilde paylaşırsanız daha iyi olur:
http://
Sıkıntı şu ki, siz muhtemelen bu kodu bir konsol uygulaması örneğine bakarak yaptınız ama sizin uygulamanız form uygulaması. Eğer butona bastıkça giriş almasını istiyorsanız while kullanmaya gerek yok, şu an yazdığınız kod bir kerede çalışıp bitiyor çünkü ReadLine() gibi kullanıcıdan girdi bekleyen bir şey yok.

Oradan while döngüsünü çıkartın, ayrıca tahmin = Convert.ToInt32(textBox1.Text); satırından sonraki hak--; ifadesini kaldırın. Zaten her bloğun içinde azaltıyorsunuz, o orada olmamalı.

Ayrıca kodu bu şekilde paylaşırsanız daha iyi olur:
Bu şekilde yaptım ama hakkı azaltmıyor 10 hakkınız kaldı diyor

Kod:
Random rasgele = new Random();

        private void button1_Click(object sender, EventArgs e)
        {
            int tahmin, sayi = rasgele.Next(100);
            int hak = 10;

            label3.Text = ("\n \n" + hak + "Hakkınız var.");
            if (hak<0)
            {
                label3.Text=("KAYBETTİNİZ...");
            }
            tahmin = Convert.ToInt32(textBox1.Text);
            if (tahmin==sayi)
            {
                MessageBox.Show("TEBRİKLER BİLDİNİZ...");
                hak--;
            }
            else if (tahmin < sayi)
            {
                label5.Text = ("Daha BÜYÜK bir sayi giriniz...");
                hak--;
            }
            else
            {
                label5.Text = ("Daha KÜÇÜK bir sayi giriniz...");
                hak--;
            }
 
Uyarı! Bu konu 5 yıl önce açıldı.
Muhtemelen daha fazla tartışma gerekli değildir ki bu durumda yeni bir konu başlatmayı öneririz. Eğer yine de cevabınızın gerekli olduğunu düşünüyorsanız buna rağmen cevap verebilirsiniz.

Technopat Haberler

Yeni konular

Geri
Yukarı