17 Mayıs 2013 Cuma

C Sharp Uygulamalar Var Mısın Yok Musun Oyunu



KONU : C Sharp Uygulamalar - C Sharp ( C# ) form var mısın yok musun oyunu. C sharp dinamik olarak forma buton ekleme. Buton tıklama olayı ve tıklanan butonun arka plan rengi text değeri özelliklerini değiştirme. Dizi ve generic list kullanım örnekleri.





UYGULAMAYI İNDİR



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 C_Sharp_Form_Var_Misin_Yok_Musun_Oyunu
{
    public partial class Form1 : Form
    {
        const int kutuSayisi = 24;
        const int maxOdulTutari = 240000;
        Button oncekiButon = null;
        int rasgeneSayi;
        int[] kutular;
        int[] oduller;
        List< int > kutuNumaralar;

        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {

            //var mısın  yok musun oyunu için 24 kutum olsun istenirse arttırılabilir

            kutular = new int[kutuSayisi];
            oduller = new int[kutuSayisi];
            kutuNumaralar = new List();

            //Oyunu başlat
            yeniOyunBaslat();
        }

        //Bu metot ile oluşturduğum 24 kutuyu kutular dizisine rasgele ekleyeceğim.
        //Böylece ödülleri rasgele dağıtmış olacağım.

        private void odulleriKutularaRasgeleDagit()
        {
            Random rnd = new Random();

            for (int i = 0; i < kutuSayisi; i++)
            {
                //0 ile kutuSayisi arasinda rasgele kutu seç
                rasgeneSayi = rnd.Next(0, kutuNumaralar.Count);

                kutular[i] = kutuNumaralar[rasgeneSayi];
                kutuNumaralar.Remove(kutuNumaralar[rasgeneSayi]);
            }
        }

        //ödülleri küçükten büyüğe doğru sırası ile oduller dizisine ekliyorum.

        private void odulleriDoldur()
        {
            for (int i = 0; i < kutuSayisi; i++)
            {
                oduller[i] = (maxOdulTutari / kutuSayisi) * i;
            }
        }

        //Kutu nuramaraları sırasıyla oluşturup kutuNumarala listine ekliyorum

        private void kutuNumaralaeiOlustur()
        {
            for (int i = 0; i < kutuSayisi; i++)
            {
                kutuNumaralar.Add(i);
            }
        }

        //Bu metot ile kullanılacak olan kutuları dinamik olarak forma ekliyorum.
        //Kutuları butonlardan oluşturdum. Butona tıklanınca bu butonun daha önce
        //atadığım ödül miktarını gösteceğim. Eğer miktar büyükse arka plan kırmızı
        //eğer ödül miktarı küçük ise arka plan mavi renk olarak göstereceğim. 
        //ilk forma butonlar yüklendiğinde beyaz renk ile yerleştireceğim.

        private void gorselButonlariOlusturYerlestir()
        {
            int a = 50;
            List< Button > gorselKutular = new List< Button >();
            for (int i = 0; i < kutuSayisi; i++)
            {

                Button gorselKutu = new Button();
                gorselKutu.Location = new System.Drawing.Point(75 * (i % 6) + 15, 50 * (i / 6) + 15 + a);
                gorselKutu.Name = i.ToString();
                gorselKutu.BackColor = Color.White;
                gorselKutu.FlatStyle = FlatStyle.Flat;
                gorselKutu.Size = new System.Drawing.Size(75, 50);
                gorselKutu.TabIndex = 0;
                gorselKutu.Text = "";
                gorselKutu.UseVisualStyleBackColor = true;
                gorselKutu.Click += new EventHandler(gorselKutu_Click);
                this.Controls.Add(gorselKutu);
            }
        }

        //Kutuları açmak için butona tıklama olayı tetiklenecek. Burada butona atanan
        //değer butonun text kısmına yazdırağım. Arka plan rengini de bu kutudaki
        //ödül miktarının büyüklüğüne göre kırmızı veya mavi olarak göstereceğim

        void gorselKutu_Click(object sender, EventArgs e)
        {
            Button gorselKutu = sender as Button;
            int deger = oduller[kutular[int.Parse(gorselKutu.Name)]];
            gorselKutu.Text = deger.ToString();

            if (deger <= maxOdulTutari / 2)
                gorselKutu.BackColor = Color.Blue;
            else
                gorselKutu.BackColor = Color.Red;

            if (oncekiButon != null)
            {
                oncekiButon.FlatAppearance.BorderSize = 1;
            }

            gorselKutu.FlatAppearance.BorderSize = 5;
            oncekiButon = gorselKutu;
        }

        //Oyuna yeniden başlamak için bu butonu kullanacağım

        private void btnYenidenBasla_Click(object sender, EventArgs e)
        {
            yeniOyunBaslat();
        }

        private void kutulariTemizle()
        {
            this.Controls.Clear();
            this.Controls.Add(this.btnYenidenBasla);
        }

        private void yeniOyunBaslat()
        {
            kutuNumaralar.Clear();
            kutulariTemizle();
            kutuNumaralaeiOlustur();
            odulleriDoldur();
            odulleriKutularaRasgeleDagit();
            gorselButonlariOlusturYerlestir();
        }

    }

}


UYGULAMAYI İNDİR

Hiç yorum yok :

Yorum Gönder