using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace SLOT
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
       // Tanımlamalarım..
        int jetonsayisi = 0;
        int kasadakipara = 0;
        Random rnd = new Random();
        int index = 0;
        int kesinkazan;
        int resim1, resim2, resim3 = 0;
        int kazanilanpara = 0;
        int harcanilanpara = 0;
        System.Media.SoundPlayer ses = new System.Media.SoundPlayer();
        void sonuckontrol()
            {
            /* Sonuç kontrol kısmım eğer tek resim geldi ise uzun kahkaha, iki resim aynı geldi ise kısa kahkaha, hepsi aynı ise alkış karar
             * mekanizmasını burada tanımlıyorum.
             */
            if (resim1 == resim2 && resim2 == resim3)
            {
                ses.SoundLocation = Application.StartupPath + "\\ALKIS.wav";
                ses.Play();
                label6.Text = "Kasadaki " + kasadakipara.ToString() + "TL'yi kazandınız";
                kazanilanpara = kazanilanpara + kasadakipara;
                label12.Text = kazanilanpara.ToString();
                kasadakipara = 0;
                Refresh();
            }
            else if (resim1 == resim2 || resim2 == resim3 || resim3 == resim1)
            {
                ses.SoundLocation = Application.StartupPath + "\\kisakahkaha.wav";
                ses.Play();
                label6.Text = "Az kaldı, bir daha şansınızı deneyiniz..";
            }
            else
            {
                ses.SoundLocation = Application.StartupPath + "\\uzunkahkaha.wav";
                ses.Play();
                label6.Text = "Üzülme aşkta kazanırsın :))))";
            }
        }
        void bip()
        {
            ses.SoundLocation = Application.StartupPath + "\\bip.wav";
            ses.Play();
        }
        private void button1_Click(object sender, EventArgs e)
        {
            /* oyna denildiğinde jeton sayısı arttırılıyor, timer 1 çalıştırılıyor, label bilgileri yazdırılıyor */
            jetonsayisi = jetonsayisi + 1;
            timer1.Enabled = true;
            label2.Text = jetonsayisi.ToString();
            kasadakipara = kasadakipara + 10;
            label4.Text = kasadakipara.ToString();
            ses.Stop();
            label6.Text = "";
            harcanilanpara = jetonsayisi * 10;
            label8.Text = harcanilanpara.ToString();
        }
        private void timer1_Tick(object sender, EventArgs e)
        {
            // Eğer jeton sayısı 10 dan az ise, birinci resim ilk 10 resim alanında dönüyor, ilk 10 içinden seçiliyor. Diğerleri ise 30 resim içinde dönüyor.

            if (jetonsayisi < 10)
            {
                int resim1deger = rnd.Next(0, 10);
                int resim2deger = rnd.Next(0, 30);
                int resim3deger = rnd.Next(0, 30);
                pictureBox1.Image = ımageList1.Images[resim1deger];
                pictureBox2.Image = ımageList1.Images[resim2deger];
                pictureBox3.Image = ımageList1.Images[resim3deger];
                index += 1;
                resim1 = resim1deger;   // Gelen resmi birinci resim olarak ayarladım, kontrol için..
                // Tüm hepsinden sonra timer 1 durduruluyor.
                if (index == 29)
                {
                    timer1.Stop();
                    bip();
                    timer2.Start();
                    index = 0;
                }
            }
                /* Eğer jeton sayısı 10 dan fazla ise ve kasadaki para - ise kazanma şansını bir miktar arttırıyoruz,
            resim 1. kısımdan 0-30 arasında gelecek */

            else if (kasadakipara < 0 && jetonsayisi >= 10)
            {
                int resim1deger = rnd.Next(0, 30);
                int resim2deger = rnd.Next(0, 30);
                int resim3deger = rnd.Next(0, 30);
                pictureBox1.Image = ımageList1.Images[resim1deger];
                pictureBox2.Image = ımageList1.Images[resim2deger];
                pictureBox3.Image = ımageList1.Images[resim3deger];
                index += 1;
                resim1 = resim1deger;
                // timer 2 durduruluyor..

                if (index == 29)
                {
                    timer1.Stop();
                    bip();
                    timer2.Start();
                    index = 0;
                }
            }
              /* Eğer jeton sayısı 10 dan fazla ise ve 20 den az ise ayrıca kasadaki para + ise kazanma şansını daha fazla arttırıyoruz,
            resim 1. kısımdan 0-30 arasında gelecek */

            else if (kasadakipara > 0 && jetonsayisi >= 10 && jetonsayisi 20 && jetonsayisi != 23)
            {
                int resim1deger = rnd.Next(0, 5);
                int resim2deger = rnd.Next(0, 5);
                int resim3deger = rnd.Next(0, 5);
                pictureBox1.Image = ımageList1.Images[resim1deger];
                pictureBox2.Image = ımageList1.Images[resim2deger];
                pictureBox3.Image = ımageList1.Images[resim3deger];
                index += 1;
                resim1 = resim1deger;
                // timer 1 durdurulur.

                if (index == 29)
                {
                    timer1.Stop();
                    bip();
                    timer2.Start();
                    index = 0;
                }
            }
                  /* Eğer jeton sayısı 23 ise direk kazandırma kısmım.. Burada kesinkazanan diye bir değere resim1 değerini atadım */
            else if (jetonsayisi == 23)
            {
                int resim1deger = rnd.Next(0, 30);
                int resim2deger = rnd.Next(0, 30);
                int resim3deger = rnd.Next(0, 30);
                pictureBox1.Image = ımageList1.Images[resim1deger];
                pictureBox2.Image = ımageList1.Images[resim2deger];
                pictureBox3.Image = ımageList1.Images[resim3deger];
                index += 1;

                resim1 = resim1deger;

                kesinkazan = resim1deger;

                if (index == 29)
                {
                    timer1.Stop();
                    bip();
                    timer2.Start();
                    index = 0;
                }
            }
        }
        private void timer2_Tick(object sender, EventArgs e)
        {
            if (jetonsayisi < 10)
                // Jeton sayısı 10 dan küçükse ikinci resim bu sefer 10 ile 30 indeks nolular arasından seçiliyor. İlki ilk 10 dan seçildiği için kazanma şansı sıfır..
            {
                int resim2deger = rnd.Next(10, 30);
                int resim3deger = rnd.Next(0, 30);
                pictureBox2.Image = ımageList1.Images[resim2deger];
                pictureBox3.Image = ımageList1.Images[resim3deger];
                index += 1;
                resim2 = resim2deger;
                if (index == 29)
                {
                    timer2.Stop();
                    bip();
                    timer3.Start();
                    index = 0;
                }
            }
                /* Kasadaki para - ise jeton sayısı 10 ve üzeri ise şansı biraz daha artırmıştım..
                 */
            else if (kasadakipara=10)
            {
                int resim2deger= rnd.Next (0,30);
                int resim3deger = rnd.Next (0,30);
                pictureBox2.Image = ımageList1.Images[resim2deger];
                pictureBox3.Image = ımageList1.Images[resim3deger];

                index+=1;
                resim2 = resim2deger;

                 if (index == 29)
                {
                    timer2.Stop();
                    bip();
                    timer3.Start();
                    index = 0;
                }
            }
                /* Kasadaki para + ise jeton sayısı 10 - 20 ise çalışacak karar mekanizmam
                 */
            else if (kasadakipara > 0 && jetonsayisi >= 10 && jetonsayisi 20 && jetonsayisi!=23)
            {
                int resim2deger = rnd.Next(0, 5);
                int resim3deger = rnd.Next(0, 5);
                pictureBox2.Image = ımageList1.Images[resim2deger];
                pictureBox3.Image = ımageList1.Images[resim3deger];
                index += 1;
                resim2 = resim2deger;
                if (index == 29)
                {
                    timer2.Stop();
                    bip();
                    timer3.Start();
                    index = 0;
                }
            }
                /* Eğer jeton 23 ise değerşer 30 resim içinde dönsede ilk resim ne geldi ise ikinci resim o gelecek
                 */
            else if (jetonsayisi == 23)
            {
                int resim2deger = rnd.Next(0, 30);
                int resim3deger = rnd.Next(0, 30);
                pictureBox2.Image = ımageList1.Images[resim2deger];
                pictureBox3.Image = ımageList1.Images[resim3deger];
                index += 1;
                pictureBox2.Image = ımageList1.Images[kesinkazan];
                resim2deger = kesinkazan;
                resim2 = resim2deger;
                if (index == 29)
                {
                    timer2.Stop();
                    bip();
                    timer3.Start();
                    index = 0;
                }
            }

        }
        private void timer3_Tick(object sender, EventArgs e)
        {
            /* Jeton sayısı 10 dan küçükse üçüncü resim bu sefer 0 ile 30 indeks nolular arasından seçiliyor.
            İlki ilk 10 dan seçildiği için, ikinci de 10 ile 30 arasından seçildiği içinm 3. ne olursa olsun
            kazanma şansı sıfır.. */
            if (jetonsayisi < 10)
            {
                int resim3deger = rnd.Next(0, 30);
                pictureBox3.Image = ımageList1.Images[resim3deger];
                index += 1;
                resim3 = resim3deger;
                if (index == 29)
                {
                    timer3.Stop();
                    sonuckontrol();
                    index = 0;
                }
            }
                /* Kasadaki para - ise jeton 10 ve üzeri ise şansı biraz daha arttırdım.. Gelen resim kısmını bir nebze daralttım
                 */
            else if (kasadakipara < 0 && jetonsayisi >= 10)
            {
                int resim3deger = rnd.Next(20, 30);
                pictureBox3.Image = ımageList1.Images[resim3deger];
                index += 1;
                resim3 = resim3deger;
                if (index == 29)
                {
                    timer3.Stop();
                    sonuckontrol();
                    index = 0;
                }
            }
/* Kasa + ise jeton 10 ile 20 arası ise şans biraz daha arttırılıyor */
            else if (kasadakipara > 0 && jetonsayisi >= 10 && jetonsayisi  20 && jetonsayisi != 23)
            {
                int resim3deger = rnd.Next(0, 5);
                pictureBox3.Image = ımageList1.Images[resim3deger];
                index += 1;
                resim3 = resim3deger;
                if (index == 29)
                {
                    timer3.Stop();
                    sonuckontrol();
                    index = 0;
                }
            }
            /* jeton sayısı 23 ise 3. resime ne gelirse gelsin (random değer) 1. resimdeki değer atanıyor. */
            else if (jetonsayisi == 23)
            {
                int resim3deger = rnd.Next(0, 30);
                pictureBox3.Image = ımageList1.Images[resim3deger];
                index += 1;
                pictureBox3.Image = ımageList1.Images[kesinkazan];
                resim3deger = kesinkazan;
                resim3 = resim3deger;
                if (index == 29)
                {
                    timer3.Stop();
                    sonuckontrol();
                    index = 0;
                }
            }
        }
        private void button2_Click(object sender, EventArgs e)
        {
            // bilgileri yazdırma..
            jetonsayisi = 0;
            kasadakipara = 0;
            label2.Text = jetonsayisi.ToString();
            label4.Text = kasadakipara.ToString();
        }
        private void button3_Click(object sender, EventArgs e)
        {
            // Kapatma işlemi, uyarı..
            DialogResult sonuc;
            sonuc = MessageBox.Show("Çıkmak istiyor musunuz?", "Uyarı", MessageBoxButtons.OKCancel);
            if (sonuc == DialogResult.OK)
            {
                this.Close();
            }
        }
    }
}

Dosyayı İndir