Header Ads

C# At Yarışı Oyunu

C# Basit At Yarışı Oyunu

C# At Yarışı Oyunu Kaynak Kodları

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();
            }
        }
    }
}
İndirme bağlantısı : C# at yarışı oyunu source

2 yorum:

  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.

Post Top Ad

Post Bottom Ad