C# ile Rastgele Sayı Üretip Tahmin Etme Oyunu
Bu örneğimizde 2 kullanıcı karşılıklı bir şekilde oynayacaklar ve her birinin puanı yarı hesaplanacak. Oyunu Bitir tuşuna basınca kimin puanı yüksekse o kullanıcıya "TEBRİKLER, KAZANDINIZ" mesajı verilecek, kullanıcılar bilgisayarın rastgele ürettiği sayıları tahmin edip puan alacaklar.

Başla Oyuncu #1 düğmesine tıklayınca hemen altındaki listbox nesnesine "OYUN BAŞLADI, sayı üretildi, tahmininiz" yazıyoruz. Kullanıcı tahminini metin kutusuna girip, "Giriş" düğmesine tıklıyor. Eğer üretilen sayı bilindiyse TEBRİKLER, KAZANDINIZ mesajı veriyoruz, tahmin olarak girilen sayı üretilen sayıdan küçükse "Daha büyük bir sayı giriniz", tersiyse "Daha küçük bir sayı giriniz" mesajı veriyoruz.
Programda her oyuncu 6 defa tahmin yapabilir, eğer 6 defada bilemezse, bilgisayarın ürettiği sayı ekrana yazılır ve Üzgünüm, kaybettiniz, Üretilen sayı :20 gibi bir mesaj verilir.
Programın tüm kodları aşağıdaki gibidir.
Başla Oyuncu #1 düğmesine tıklayınca hemen altındaki listbox nesnesine "OYUN BAŞLADI, sayı üretildi, tahmininiz" yazıyoruz. Kullanıcı tahminini metin kutusuna girip, "Giriş" düğmesine tıklıyor. Eğer üretilen sayı bilindiyse TEBRİKLER, KAZANDINIZ mesajı veriyoruz, tahmin olarak girilen sayı üretilen sayıdan küçükse "Daha büyük bir sayı giriniz", tersiyse "Daha küçük bir sayı giriniz" mesajı veriyoruz.
Programda her oyuncu 6 defa tahmin yapabilir, eğer 6 defada bilemezse, bilgisayarın ürettiği sayı ekrana yazılır ve Üzgünüm, kaybettiniz, Üretilen sayı :20 gibi bir mesaj verilir.
Programın tüm kodları aşağıdaki gibidir.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace İkiliOyun
{
public partial class Form1 : Form
{
int sayi1, sayi2;
int sayac1, sayac2;
int oyuncuPuan1, oyuncuPuan2;
public Form1()
{
InitializeComponent();
}
private void btnOyuncu2_Click(object sender, EventArgs e)
{
Random rastgele = new Random();
sayi2 = rastgele.Next(100) + 1;
listBox2.Items.Clear();
listBox2.Items.Add("OYUN başladı.");
listBox2.Items.Add("Sayı üretildi, tahmininiz?");
sayac2 = 0;
// listBox1.Items.Add(sayi1.ToString());
}
private void btnOyuncu1_Click(object sender, EventArgs e)
{
Random rastgele = new Random();
sayi1 = rastgele.Next(100) + 1;
listBox1.Items.Clear();
listBox1.Items.Add("OYUN başladı.");
listBox1.Items.Add("Sayı üretildi, tahmininiz?");
sayac1 = 0;
// listBox1.Items.Add(sayi1.ToString());
}
private void btnGiris1_Click(object sender, EventArgs e)
{
if (txtTahmin1.Text != "" && sayi1!=0)
{
int tahmin = int.Parse(txtTahmin1.Text);
if (tahmin == sayi1)
{
listBox1.Items.Add("TEBRİKLER, KAZANDINIZ");
oyuncuPuan1 += 10;
puan1.Items.Add(oyuncuPuan1);
}
else if (tahmin < sayi1)
{
listBox1.Items.Add("Daha büyük sayı giriniz");
sayac1++;
if (sayac1 == 6)
{
MessageBox.Show("Üzgünüm, kaybettiniz, Üretilen sayı:" + sayi1.ToString());
oyuncuPuan1 -= 5;
puan1.Items.Add(oyuncuPuan1);
}
}
else if (tahmin > sayi1)
{
listBox1.Items.Add("Daha küçük sayı giriniz");
sayac1++;
if (sayac1 == 6)
{
MessageBox.Show("Üzgünüm, kaybettiniz, Üretilen sayı:" + sayi1.ToString());
oyuncuPuan1 -= 5;
puan1.Items.Add(oyuncuPuan1);
}
}
} //if tahmin1 boş mu
}
private void button1_Click(object sender, EventArgs e)
{
oyuncuPuan1 = 0;
oyuncuPuan2 = 0;
listBox1.Items.Clear();
listBox2.Items.Clear();
puan1.Items.Clear();
puan2.Items.Clear();
}
private void Form1_Load(object sender, EventArgs e)
{
btnYeniBaslat.PerformClick();
}
private void btnGiris2_Click(object sender, EventArgs e)
{
if (txtTahmin2.Text != "" && sayi2 != 0)
{
int tahmin = int.Parse(txtTahmin2.Text);
if (tahmin == sayi2)
{
listBox2.Items.Add("TEBRİKLER, KAZANDINIZ");
oyuncuPuan2 += 10;
puan2.Items.Add(oyuncuPuan2);
}
else if (tahmin < sayi2)
{
listBox2.Items.Add("Daha büyük sayı giriniz");
sayac2++;
if (sayac2 == 6)
{
MessageBox.Show("Üzgünüm, kaybettiniz, Üretilen sayı:" + sayi2.ToString());
oyuncuPuan2 -= 5;
puan2.Items.Add(oyuncuPuan2);
}
}
else if (tahmin > sayi2)
{
listBox2.Items.Add("Daha küçük sayı giriniz");
sayac2++;
if (sayac2 == 6)
{
MessageBox.Show("Üzgünüm, kaybettiniz, Üretilen sayı:" + sayi2.ToString());
oyuncuPuan2 -= 5;
puan2.Items.Add(oyuncuPuan2);
}
}
} //if tahmin2 boş mu
}
private void btnOyunuBitir_Click(object sender, EventArgs e)
{
int toplamPuan1 = 0, toplamPuan2=0;
toplamPuan1 = (int)puan1.Items[puan1.Items.Count-1];
MessageBox.Show("1. Oyuncu Puanları toplamı:" + toplamPuan1.ToString());
toplamPuan2 = (int)puan2.Items[puan2.Items.Count - 1];
MessageBox.Show("2. Oyuncu Puanları toplamı:" + toplamPuan2.ToString());
if (toplamPuan1 > toplamPuan2)
MessageBox.Show("1. Oyuncu kazandı");
else if(toplamPuan1 < toplamPuan2)
MessageBox.Show("2. Oyuncu kazandı");
else
MessageBox.Show("Berabere...");
}
}
}
Mutlu kodlamalar,
22 Şubat 2022
Oğuzhan TAŞ

Dil Değiştir(Change Language)
Kategoriler
- Csharp(56)
- Csharp Formlar(20)
- Web Tasarım(10)
- CSS(24)
- JavaScript(32)
- PHP(50)
- Laravel(3)
- ASP.net(38)
- Excel(15)
- Güvenlik(4)
- E-Ticaret(3)
- Kariyer(5)
- SQL Server(29)
- MySQL(16)
- Linux(15)
- MacOSX(8)
- Ayarlar(12)
- Bilgisayar Ağları(3)
- Symfony(1)
- Teknoloji(7)
- VBS(1)
- Arduino(1)
- RaspberryPi(1)
- Algoritmalar(15)
- HTML(3)
- Python(2)
- Bash Script(6)
- C Programlama(10)
- Makine Öğrenmesi(0)
- Flutter - Dart(7)
En çok Okunan 18 Makale
- :: Excelde EĞER Fonksiyonu Kullanımı...
- :: Csharp ile Access Veritabanı Bağlan...
- :: Hangi Linux Dağıtımı?
- :: OSX İşletim Sistemine PHP, MySQL, A...
- :: SQL nedir, Temel SQL Komutları nele...
- :: PHP dilini kullanarak MySQLi tekniğ...
- :: Excel Hesap tablosunda ÇOKETOPLA Fo...
- :: Mac Bilgisayarınıza Windows 7 Yükle...
- :: Excel Hesap tablosunda EĞERSAY Fonk...
- :: Excel Hesap tablosunda ÇOKEĞERSAY F...
- :: Hangi Programlama Dilini Öğrenmeliy...
- :: PHP ile Basit Dosya Yükleme
- :: Excel Hesap tablosunda ETOPLA Fonks...
- :: PHP Dili kullanarak MySQLi Tekniği ...
- :: Hangisi acaba, PHP mi ASP.NET mi ?
- :: PHP ile MySQL veritabanına MySQLi t...
- :: Web Tasarım öğrenmeye nereden başla...
- :: Asp.net ile Sql Server Veritabanına...