C# At Yarışı Oyunu

C# Basit At Yarışı Oyunu

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();
            }
        }
    }
}

C# at yarışı oyunu source

Google News Proje ve Kod Paylaşım Platformu
Yazar

Gören göze karanlık perde olamaz, görmeyen göze ışık ne yapsın.
Kırşehir - AK 456 AEÜ - Computer Programmer

2 yorum bulunuyor.
Sizlerinde konu hakkındaki görüş ve önerilerinizi bekliyoruz.

  1. bir şey soracaktım bunun form görüntüsü varmı

    YanıtlaSil
    Yanıtlar
    1. https://i.hizliresim.com/QLRg83.png bu adresten bakabilirsiniz.

      Sil

Konu hakkında yorumlarınızı bekliyorum teşekkürler.
Konunun alıntı veya yasal olmayan bir durum arz ettiğini düşünüyorsanız iletişim yolu ile bize ulaşarak bildirebilirsiniz hak ihlali durumlarında 3 iş günü içerisinde konu kaldırılacaktır.
Dipnot...!
Kırık ve eksik linki yorum olarak bildirin konu 24 saat içerisinde düzenlenecektir.