
C# windows form için hazırlanmış basit kodlama, temel düzeyde at yarışı oyunu örnek programı. Kaynak kodları ve kodların açıklaması mevcuttur.
C# At yarışı oyunu butonlara rastgele ilerlemeleri için(2-10) arasında bir sayı verilir her timer ile 1 sn ye de bir ve bu sayılar kadar x konumunda ilerletilir. Bitiş çizgisini ilk geçen buton 1. seçilir. Sizlerde yarışı başlatmadan önce seçtiğiniz at ile kazanıp kazanmama şansınızı deneyebilirsiniz.
Herhangi bir veritabanı kullanmayan at yarışı örneğimizde basit kodlama mantığı yapılmıştır.
Kodların açıklamaları açıklama satırları ile anlatılmıştır..!Kodların altında indirme linki mevcuttur.Uygulamayı indirip bakabilirsiniz.
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 Buton_Yarisi
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
button_yaris_1.Click += Button_yaris_1_Click;
button_yaris_2.Click += Button_yaris_2_Click;
button_yaris_3.Click += Button_yaris_3_Click;
}
/*
* C# BASİT AT YARIŞI OYUNU
* http://csharpdersornekleri.blogspot.com.tr
*/
// Yarışcı seçince seçileni labele yazdır
private void Button_yaris_1_Click(object sender, EventArgs e)
{
label1.Text = "1 Numara";
}
private void Button_yaris_2_Click(object sender, EventArgs e)
{
label1.Text = "2 Numara";
}
private void Button_yaris_3_Click(object sender, EventArgs e)
{
label1.Text = "3 Numara";
}
Random rnd = new Random();
int btn1x,btn1y,btn2x,btn2y,btn3x,btn3y;// Yarışcıların başlangıç noktalarını al
mesajver mesaj = new mesajver(); // Mesajver classı
private void eskikonum() // Yarışcıları başlangıç noktalarına götür
{
button_yaris_1.Location = new Point(btn1x, btn1y);
button_yaris_2.Location = new Point(btn2x, btn2y);
button_yaris_3.Location = new Point(btn3x, btn3y);
button1.Enabled = true;
button_yaris_1.Enabled = true;
button_yaris_2.Enabled = true;
button_yaris_3.Enabled = true;
label1.Text = "";
}
private void timer1_Tick(object sender, EventArgs e)
{
int konum1 = rnd.Next(2, 10);// Her yarışcı için rasgele bir sayı
int konum2 = rnd.Next(2, 10);
int konum3 = rnd.Next(2, 10);
if (button_yaris_1.Right > label_bitis.Left || button_yaris_2.Right > label_bitis.Left || button_yaris_2.Right > label_bitis.Left)
{// Yarışcılardan biri bitiş çizgisindeyse yani yarış bittiyse
if (button_yaris_1.Right > button_yaris_2.Right && button_yaris_1.Right > button_yaris_3.Right)
{ // Yarışcı 1 diğerlerinden öndeyse
if (label1.Text == "1 Numara")
{
timer1.Stop();
mesaj.mesajgetir("Tebrikler doğru tahmin.");
eskikonum();
}
else
{
timer1.Stop();
mesaj.mesajgetir("Seçtiğiniz at gelmedi.Kazanan 1 Numara.");
eskikonum();
}
}
else if (button_yaris_2.Right > button_yaris_1.Right && button_yaris_2.Right > button_yaris_3.Right)
{// Yarışcı 2 diğerlerinden öndeyse
if (label1.Text == "2 Numara")
{
timer1.Stop();
mesaj.mesajgetir("Tebrikler doğru tahmin.");
eskikonum();
}
else
{
timer1.Stop();
mesaj.mesajgetir("Seçtiğiniz at gelmedi.Kazanan 2 Numara.");
eskikonum();
}
}
else if (button_yaris_3.Right > button_yaris_1.Right && button_yaris_3.Right > button_yaris_2.Right)
{// Yarışcı 3 diğerlerinden öndeyse
if (label1.Text == "3 Numara")
{
timer1.Stop();
mesaj.mesajgetir("Tebrikler doğru tahmin.");
eskikonum();
}
else
{
timer1.Stop();
mesaj.mesajgetir("Seçtiğiniz at gelmedi.Kazanan 3 Numara.");
eskikonum();
}
}
else { timer1.Stop(); eskikonum(); }
}
else
{// Yarışcılardan biri bitiş çizgisinde değilse her birini sağa doğru rasgele sayılarla ilerlet yani yarış bitmediyse
button_yaris_1.Location = new Point(button_yaris_1.Location.X + konum1, button_yaris_1.Location.Y);
button_yaris_2.Location = new Point(button_yaris_2.Location.X + konum2, button_yaris_2.Location.Y);
button_yaris_3.Location = new Point(button_yaris_3.Location.X + konum3, button_yaris_3.Location.Y);
}
}
private void button1_Click(object sender, EventArgs e)
{
btn1x = button_yaris_1.Location.X; //Yarışcıların başlangıç konumları
btn1y = button_yaris_1.Location.Y;
btn2x = button_yaris_2.Location.X;
btn2y = button_yaris_2.Location.Y;
btn3x = button_yaris_3.Location.X;
btn3y = button_yaris_3.Location.Y;
if (label1.Text == "" || label1.Text == "At seçiniz.") // At seçilmediyse
{
label1.Text = ("At seçiniz.");
}
else
{ // at seçildiyse artık seçimleri kapat yarışı başlat
button_yaris_1.Enabled = false;
button_yaris_2.Enabled = false;
button_yaris_3.Enabled = false;
button1.Enabled = false;
timer1.Start();
}
}
}
}
bir şey soracaktım bunun form görüntüsü varmı
YanıtlaSilhttps://i.hizliresim.com/QLRg83.png bu adresten bakabilirsiniz.
Sil