C Sharp Kaplumbağa Tavşan Yarışı - Visual Studio

Bu projede bilgisayara küçük bir yarış oyunu yaptırıyoruz.
Hikâyeyi biliyorsunuz:
Kaplumbağa yavaş ama sabırlı, tavşan ise hızlı ama bazen duruyor 😊
Biz de bunu bilgisayarda canlandırıyoruz.
💻 Ne Yapıyoruz?
Ekranda kaplumbağa ve tavşan var
Bir başlat butonuna basıyoruz
Yarış başlıyor
İkisi de ileri doğru hareket ediyor
İlk bitiş çizgisine gelen kazanıyor 🎉
⚙️ Bu Nasıl Çalışıyor?
Programda bir timer (zamanlayıcı) var
👉 Bu, oyunun sürekli ilerlemesini sağlar (yani hareket ederler)
Her “tik” geldiğinde:
Kaplumbağa biraz ilerler 🐢
Tavşan bazen hızlı gider, bazen durur 🐇
🏁 Yarış Nasıl Bitiyor?
Kim en sona (bitiş çizgisine) önce ulaşırsa:
Program “Kazanan: Kaplumbağa” veya “Kazanan: Tavşan” yazar
🎯 Bu Projede Ne Öğreniyoruz?
Buton kullanmayı
Timer (zamanlayıcı) mantığını
Nesneleri hareket ettirmeyi
Basit oyun mantığı kurmayı
EKLENECEKLER (TOOLBOXTAN):
PictureBox 2 Adet - Panel 1 Adet - Buton 1 Adet - Timer 1 Adet
NESNE İSİMLERİ:
Timer: timer1
PictureBox1: pbKaplumbaga
PictureBox2: pbTavsan
PROGRAMIN KODU:
Timer: timer1
PictureBox1: pbKaplumbaga
PictureBox2: pbTavsan
PROGRAMIN KODU:
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 CartoonRace
{
public partial class Form1 : Form
{
private Random rastgele = new Random();
// Bitiş çizgisi pozisyonu
private int bitisCizgisi =750;
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
YarisiSifirla();
}
private void button1_Click(object sender, EventArgs e)
{
YarisiSifirla();
timer1.Start();
}
private void timer1_Tick(object sender, EventArgs e)
{
// --- KAPLUMBAĞA HAREKETİ (Sola gitme kaldırıldı) ---
int kSans = rastgele.Next(1, 11);
if (kSans <= 5) pbKaplumbaga.Left += 4; // %50 Hızlı yürüyüş
else if (kSans <= 7) pbKaplumbaga.Left += 0; // %20 Duraksama/Takılma (Eski hali geriye kayıyordu)
else pbKaplumbaga.Left += 2; // %30 Yavaş yürüyüş
// --- TAVŞAN HAREKETİ (Sola gitme kaldırıldı) ---
int tSans = rastgele.Next(1, 11);
if (tSans <= 3) pbTavsan.Left += 0; // %30 Uyuma/Durma
else if (tSans <= 5) pbTavsan.Left += 9; // %20 Büyük sıçrama
else if (tSans <= 8) pbTavsan.Left += 3; // %30 Küçük sıçrama
else pbTavsan.Left += 1; // %20 Çok yavaş ilerleme (Eski hali geriye kayıyordu)
// Güvenlik önlemi: Pistin solundan dışarı çıkmalarını engelle
if (pbKaplumbaga.Left < 0) pbKaplumbaga.Left = 0;
if (pbTavsan.Left < 0) pbTavsan.Left = 0;
// --- BİTİŞ KONTROLÜ ---
if (pbKaplumbaga.Left >= bitisCizgisi || pbTavsan.Left >= bitisCizgisi)
{
timer1.Stop(); // Yarışı durdur
if (pbKaplumbaga.Left >= bitisCizgisi && pbTavsan.Left >= bitisCizgisi)
{
MessageBox.Show("İnanılmaz! Beraberlik!", "Yarış Bitti");
}
else if (pbKaplumbaga.Left >= bitisCizgisi)
{
MessageBox.Show("KAPLUMBAĞA KAZANDI! 🐢\nYavaş ve kararlı olan kazandı.", "Yarış Sonucu");
}
else if (pbTavsan.Left >= bitisCizgisi)
{
MessageBox.Show("TAVŞAN KAZANDI! 🐇\nHızlı olan kazandı.", "Yarış Sonucu");
}
}
}
private void YarisiSifirla()
{
pbKaplumbaga.Left = 0;
pbTavsan.Left = 0;
}
}
}
Program.Cs Dosyasına Dikkat Name Aynı Olmalı:
Program.Cs Dosyasına Dikkat Name Aynı Olmalı:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace CartoonRace
{
static class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
}
}









