C# Programlama Örnekleri - 3 - Sayı Tahmini Oyunu
Not : Uygulama mantığı ve kodları en basit şekilde if-else kullanılarak oluşturulmuştur. Çok daha farklı uygulamalar mevcuttur. Temel seviyeye hitap etmektedir.
Bu 3. örneğimizde ünlü sayı tahmini oyununu programlayacağız. Oyunun işleyişi şu şekilde ; bilgisayar otomatik bir sayı üretiyor ve sizden bu sayıyı bilmenizi istiyor.Eğer tahmin ettiğiniz sayı oluşturulan sayıdan küçükse "Daha büyük sayı gir" , tahmin edilen sayı oluşturulan sayıdan büyükse "Daha küçük sayı gir" diye mesaj vererek uyarıyor.Zor bir algoritması yok sadece If yapısına hakim olmanız lazım.
Programın Özellikleri
Programın Kodları
Butona tıklandığı anda textbox'a girilen sayıyı değişkene alıyoruz.If kontrol yapısıyla bilgisayarın ürettiği random-rastgele sayı ile karşılaştırıyoruz.Eğer tahmin ettiğiniz sayı oluşturulan sayıdan küçükse "Daha büyük sayı gir" , tahmin edilen sayı oluşturulan sayıdan büyükse "Daha küçük sayı gir" diye mesaj vererek uyarıyo.Eşit olduğunda ise "Tebrikler Bildiniz Diyerek" oyunu bitiriyor.
Dördüncü kontrolümüz ise sayac yani kalan tahmin etme hakkı durumu.Sayaç sıfıra eşitlendiğinde hakkınız bitmiştir diyerek oyunu bitiriyor.
Burda dikkat edilmesi gerek nokta,bilgisayarın rastgele sayıyı nerede üreteceği eğer biz bu sayıyı butona tıklandığında oluştursaydık her tahmin ettiğinizde bu sayı değişecek ve biz asla doğru sayıyı bulamıycaktık.Çözüm ise Form yüklendiği anda rastgele sayıyı oluşturmak.
Programın Özellikleri
- Bilgisayarın oluşturacağı sayı 0 ile 200 arası olabilir.
- Sayıyı doğru bilmeniz için 10 hakkınız var.(Programın alt tarafında kalan hak bilgisi var)
- Sayıyı tahmin ettiğinizde listbox içerisinde girdiğiniz sayı ve sayıyı büyültüp veya azaltacağınız mesajı veriliyor.
- Random sınıfı kullanılmıştır.
- Proje Dosyası İndirmek için sayfanın altına bakınız !
Programın Kodları
using System;
using
System.Collections.Generic;
using
System.ComponentModel;
using
System.Data;
using
System.Drawing;
using
System.Linq;
using
System.Text;
using
System.Windows.Forms;
namespace
WindowsFormsApplication3
{
public partial class Form1 : Form
{
public
Form1()
{
InitializeComponent();
}
private
void button1_Click(object
sender, EventArgs e)
{
int
grlnsayi = Convert.ToInt32(textBox1.Text);
if
(grlnsayi < rastgelesayi)
{
listBox1.Items.Add(grlnsayi + " - Büyük Sayi Gir");
sayac--;
label3.Text = ("Kalan Hakkınız :" + sayac);
textBox1.Text = null;
}
else
if (grlnsayi > rastgelesayi)
{
listBox1.Items.Add(grlnsayi + " - Küçük Sayi Gir");
sayac--;
label3.Text=("Kalan Hakkınız :" + sayac);
textBox1.Text = null;
}
else
{
MessageBox.Show("Sayı: "+rastgelesayi +" TEBRİKLER ! DOĞRU BİLDİNİZ");
textBox1.Text = null;
button1.Hide();
}
if
(sayac==0)
{
MessageBox.Show("Hakkınız Bitti !");
button1.Hide();
}
}
int
rastgelesayi;
int
sayac = 10;
private
void Form1_Load(object
sender, EventArgs e)
{
Random
rnd = new Random();
rastgelesayi = rnd.Next(201);
this.Text
= "* SAYI TAHMİNİ OYUNU *";
}
}
}
Sayı Tahmini Algoritma Anlatım
Butona tıklandığı anda textbox'a girilen sayıyı değişkene alıyoruz.If kontrol yapısıyla bilgisayarın ürettiği random-rastgele sayı ile karşılaştırıyoruz.Eğer tahmin ettiğiniz sayı oluşturulan sayıdan küçükse "Daha büyük sayı gir" , tahmin edilen sayı oluşturulan sayıdan büyükse "Daha küçük sayı gir" diye mesaj vererek uyarıyo.Eşit olduğunda ise "Tebrikler Bildiniz Diyerek" oyunu bitiriyor.
Dördüncü kontrolümüz ise sayac yani kalan tahmin etme hakkı durumu.Sayaç sıfıra eşitlendiğinde hakkınız bitmiştir diyerek oyunu bitiriyor.
Burda dikkat edilmesi gerek nokta,bilgisayarın rastgele sayıyı nerede üreteceği eğer biz bu sayıyı butona tıklandığında oluştursaydık her tahmin ettiğinizde bu sayı değişecek ve biz asla doğru sayıyı bulamıycaktık.Çözüm ise Form yüklendiği anda rastgele sayıyı oluşturmak.
Hocam kodlar için cok tşkr ederim fakat bana consol ekranında acılan kodlar lazım osekilde yapıp yayınlarmısın..!!
YanıtlaSilalgoritmasını anlattım,kodları verdim.değiştirilecek bazı kısımlar var(console.writeline ve console.readline vb.) o kısımları senin değiştirerek ,programın işleyişi hakkında bilgini arttırman daha mantıklı olur :) kolay gelsin
Silkullanıcının kaç hakkı var ?
YanıtlaSil