ArrayList etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
ArrayList etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

16 Haziran 2013 Pazar

C Sharp Uygulamalar Generic Tip Kullanımı



KONU : C Sharp Uygulamalar - C Sharp ( C# ) jeneric tip kullanımı örnekleri, C sharpta kullanılan listeler ve bu Listelere eleman ekleme. ArrayList Kullanımı, Generic List Kullanımı, Dictionary Kullanımı, SortedDictionary Kullanımı, SortedList Kullanımı, Stack - Queue Kullanımı, generic class kullanımı.
ETİKETLER: csharp arraylist - csharp arraylist add - c sharp generic list - c sharp generic list add - csharp generic class - csharp generic collections - csharp stack - csharp queue - csharp stack queue - csharp string queue - csharp sortedlist - csharp sorted collection - csharp sorteddictionary - csharp sorteddictionary example - csharp dictionary - csharp dictionary add





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;
using System.Collections;

namespace C_Sharp_Generic_Tip_Kullanımı
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            //ArrayList object aldığı için her türlü veri girişi yapılabilir.
           
            ArrayList arraylist = new ArrayList();

            //integer bir sayı eklenebilir
            
            arraylist.Add(234231);

            //string bir değer eklenebilir

            arraylist.Add("123456");
            
            //Herhangi bir kontrol eklenebilir.

            arraylist.Add(new TextBox());


            //Generic List collection ını sadece belirtilen tipte değerler alabilir. 
            //Böylece bu collection içinde sadece bu tipin olduğunu bildiğimizden bu liste sadece
            //bu tipte veri ataması yaparız. 

            List< int > list = new List< int >();
            
            list.Add(123);
            list.Add(456);
            list.Add(789);

            foreach (int item in list)
            {
                listBox1.Items.Add(item);
            }


            //şimdi de generic Para sınıfını nasıl kullanabileceğimize bakalım
            //Burada Para nın tipi int olsun. Bu durumda Lira ve Kurus değerlerini int tipinden girmemiz
            //gerekecek. Aşağıda para isminde bir örneğini oluşturacağım.

            Para< int > paraInt = new Para< int >();
            
            paraInt.Lira = 40;
            paraInt.Kurus = 13;

            //Bu sefer Para generic sınıfının tipin string yapacağım. Bu durumda Lira ve Kurus değerlerinin
            //tipi de otomatik olarak string olacak. Aşağıdaki örnekteki gibi değerleri çift tırnak olarak
            //yani string olarak girmemiz gerekiyor.

            Para< string > paraString = new Para< string >()
            {
                Lira = "Kirk",
                Kurus = "On Üç"
            };

            //bu örneğimde de Para sınıfının tipini double olarak atadım.

            Para< double > paraDouble = new Para < double >(3, 12);

            //oluşturduğumuz para nesnelerini listboxda görelim. Bu işlem bu sınıfın ToString metodundaki
            // değeri listbox kutusuna yazdıracak
       
            listBox1.Items.Add(paraInt);
            
            listBox1.Items.Add(paraString);
            
            listBox1.Items.Add(paraDouble);


            //Diğer Collection sınıflarına da aşağıdaki gibi eleman ekleyebiliriz.

            //Queue tipini ne yaparsak o tipte eleman ekleme yapabiliriz. Burada string ve int tipinde iki
            //örnek ile eleman eklemenin nasıl yapılacağını gösterdim.

            //Queue collection ını FIFO yapısına sahiptir (First in First out), yani bu collection a
            //ilk eklenen ilk çıkar yapısındadır. Dequeue metodu kullanılarak da queue boşaltılır.
            //boşaltma işleminde FIFO kuralı uygulanır

            Queue < int > queueInt = new Queue< int >();

            queueInt.Enqueue(1);
            queueInt.Enqueue(4);

            Queue< string > queueString = new Queue< string >();

            queueString.Enqueue("1");
            queueString.Enqueue("4");


            //Diğer bir collection da Stack tir. Generic yapısından dolayı yine tip seçilebilir.
            //Bunun Queue dan farkı LIFO yapısına sahiptir (Last in Firs Out), yani bu collectiona son eklenen
            //eleman ilk çıkar. Push metodu eleman eklemek için kullanılır. Pop metoduda eleman çıkartmak için
            //kullanılır.

            Stack< string > s = new Stack< string >();
            s.Push("A");
            s.Push("B");

            //Dictionary  sınıfı içerisinde belirleyeceğiniz bir anahtara uygun bir değeri saklayabilecek
            //listeleri oluşturmak için kullanılır. Burada anahtar türünün belirtilmesi gerekmektedir. 

            Dictionary< int, string > dictionary = new Dictionary< int, string >();

            dictionary.Add(1, "Enes");
            dictionary.Add(2, "Gökçe");
            dictionary.Add(3, "Sami");

            //Veriler  anahtar-değer  yapısında saklanır. Bu listeye eklenen  veriler alfabetik  olarak 
            //sıralı bir şekilde tutulur. Veri türlerinin hepsini kullanabilir. Key(Anahtar) değiştirilemez 
            //ve boş değer girilemez. Value (Değer) değiştirilebilir ve boş değer olarak girilebilir.

            SortedList< string, string > sortedlist = new SortedList< string, string >();

            sortedlist.Add("Araba", "Car");
            sortedlist.Add("Masa", "Table");



            SortedDictionary< int, string > sorteddictionary = new SortedDictionary< int, string >();

            sorteddictionary.Add(1, "Enes");
            sorteddictionary.Add(2, "Gökçe");
            sorteddictionary.Add(3, "Sami");
        }



    }


    //Örnek olarak Para diye bir generic class yapalım ve bunu kullanalım.

    public class Para< Tip >
    {
        public Tip Lira;
        public Tip Kurus { get; set; }

        public Para()
        {

        }
        public Para(Tip tipLira, Tip tipKurus)
        {
            this.Lira = tipLira;
            this.Kurus = tipKurus;
        }

        public Tip Yazdir(Tip tip)
        {
            return tip;
        }


        public override string ToString()
        {
            return Lira + " TL " + Kurus + " Kurus";
        }
    }
}
  

UYGULAMAYI İNDİR

25 Mayıs 2013 Cumartesi

C Sharp Uygulamaları İskambil Kağıt Dağıtma Örnek Uygulama



KONU : C Sharp Uygulamalar - C Sharp ( C# ) form uygulamalar iskambil kağıtları karma ve dağıtma. İskambil kağıtlarını form üzerinde picturebox nesnesi ile gösterme. Oyuncu Kağıt görsellerini form üzerinde sıralama ve yerleştirme. İskambil kağıt oynama alanı oluşturma.
ETİKETLER: c sharp iskambil - c# iskambil - c# iskambil oyunu - c# pişti oyunu - c# pişti - c# ile pişti - c# batak oyunu - c# batak oyunu -c sharp kağıt oyun alanı - oyun alanı oluşturma- kağıt oyunları - picturebox - resimleri bölme - resimleri rastgele dağıtma.



UYGULAMAYI İNDİR



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

namespace iskambilOyun
{
    public partial class Form1 : Form
    {
        #region Global değişkenler
        ArrayList resimler = new ArrayList();
        ArrayList kartlar = new ArrayList();
        ArrayList etiketler = new ArrayList();
        int[] oyunEl = new int[52];
        int deste = 20, el = 5;
        Label[] lblPuan;
        int acikKartSayisi = 0;
        int[] xx = new int[4];
        int[] yy = new int[4];

        #endregion

        #region Form1
        public Form1()
        {
            InitializeComponent();
        }
        #endregion

        #region Form u yukle
        private void Form1_Load(object sender, EventArgs e)
        {
            resimleriOlustur();
            Dagit_Click(sender, e);
            kartlariSirala();
            ekranaYukle();
            elPuanları();
            ayniOlanKartlar();
        }
        #endregion

        #region Yeni oyun Başlat
        private void yeniOyunToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Temizle();
            resimleriOlustur();
            Dagit_Click(sender, e);
            kartlariSirala();
            ekranaYukle();
            elPuanları();
            ayniOlanKartlar();
        }
        #endregion

        #region Ekranı temizle
        private void Temizle()
        {
            for (int i = 0; i < deste; i++)
            {
                ((PictureBox)kartlar[i]).Dispose();
            }
            for (int i = 0; i < 8; i++)
            {
                ((Label)etiketler[i]).Dispose();
            }
            acikKartSayisi = 0;
        }
        #endregion

        #region Kartları Dağıt
        private void Dagit_Click(object sender, EventArgs e)
        {
            ArrayList kagitlar = new ArrayList();
            kagitlar.Clear();
            kartlar.Clear();
            etiketler.Clear();
            int x = 375, y = 50, kart = 0, random;
            Random rdn = new Random();
            for (int i = 0; i < 4; i++)
            {
                Label lbl = new Label();
                lbl.Name = i.ToString();
                xx[i] = x - 100;
                yy[i] = y + 115;
                lbl.Location = new Point(x - 100, y + 115);
                etiketler.Add(lbl);
                this.Controls.Add(lbl);
                for (int j = 0; j < el; j++)
                {
                    PictureBox pcb = new PictureBox();
                    pcb.Name = kart.ToString();
                    pcb.Size = new Size(73, 98);
                    pcb.Location = new Point(x, y);
                    pcb.Click += new EventHandler(pcb_Click);
                    pcb.BringToFront();
                    x -= 25;

                    random = rdn.Next(0, 52);
                    while (kagitlar.Contains(random))
                        random = rdn.Next(0, 52);
                    kagitlar.Add(random);
                    kartlar.Add(pcb);
                    oyunEl[kart++] = random;

                    //pcb.Image = (Image)resimler[random];
                    this.Controls.Add(pcb);
                }

                if (i != 1)
                    y += 200;
                if (i == 1)
                    x = 600;
                if (i == 2)
                    x = 375;
                if (i == 0)
                    x = 135;
            }
        }
        #endregion

        #region Kart resimlerini olustur
        void resimleriOlustur()
        {
            Bitmap resim = new Bitmap(1, 1);
            Graphics gr = null;
            //Bu Bitmap için grafik nesnesi oluştur
            int x = 0, y = 0, w = 73, h = 98;
            for (int i = 0; i < 4; i++)
            {
                for (int k = 0; k < 13; k++)
                {
                    Rectangle seçili_alan = new Rectangle(x, y, w, h);
                    //Seçili alan büyüklüğünde bir Bitmap oluştur
                    resim = new Bitmap(seçili_alan.Width, seçili_alan.Height);
                    //Bu Bitmap için grafik nesnesi oluştur
                    gr = Graphics.FromImage(resim);
                    //Picture Box içindeki resmi yeni resmin 0,0 noktasına çiz
                    gr.DrawImage(pictureBox1.Image, 0, 0, seçili_alan, GraphicsUnit.Pixel);
                    //Yeni resmi pictureBox içine ata
                    resimler.Add(resim);
                    x += 73;
                }
                y += 98;
                x = 0;
            }
            gr.Dispose();
        }
        #endregion

        #region Tıklanan kartı ortaya al
        void pcb_Click(object sender, EventArgs e)
        {
            PictureBox pcb = (PictureBox)sender;
            pcb.Location = new Point(325, 250);
            pcb.BringToFront();
            int kartNo = int.Parse(pcb.Name);
            int lblNo = 0;
            if (kartNo < el && kartNo >= 0)
                lblNo = 0;
            else
                if (kartNo < 2 * el && kartNo >= el)
                    lblNo = 1;
                else
                    if (kartNo < 3 * el && kartNo >= 2 * el)
                        lblNo = 2;
                    else
                        lblNo = 3;

            Label lbl = ((Label)etiketler[lblNo]);
            int lblToplam = int.Parse(lbl.Text.Substring(14));
            int kartPuan = 0;
            if (oyunEl[kartNo] % 13 == 0)
                kartPuan = 11;
            else
                if (oyunEl[kartNo] % 13 > 9)
                    kartPuan = 10;
                else
                    kartPuan = oyunEl[kartNo] % 13 + 1;
            lblToplam -= kartPuan;
            lbl.Text = "Toplam Puan = " + lblToplam.ToString();
            acikKartSayisi--;
            DialogResult c = DialogResult.None;
            if (acikKartSayisi == 0)
                c = MessageBox.Show("Yeni oyun başlasın mı?", "Yeni Oyun", MessageBoxButtons.YesNo);
            if (c == DialogResult.Yes)
                yeniOyunToolStripMenuItem_Click(sender, e);
            else if (c == DialogResult.No)
                Close();

        }
        #endregion

        #region Kartları Sırala
        void kartlariSirala()
        {
            ArrayList oyun = new ArrayList();
            for (int i = 0; i < 4; i++)
            {
                for (int k = 0; k < el; k++)
                    oyun.Add(oyunEl[i * el + k]);
                oyun.Sort();
                for (int k = 0; k < el; k++)
                    oyunEl[i * el + k] = int.Parse(oyun[k].ToString());
                oyun.Clear();
            }
        }
        #endregion

        #region Kartları Göster
        void ekranaYukle()
        {
            for (int i = 0; i < deste; i++)
            {
                PictureBox pcb = (PictureBox)kartlar[i];
                pcb.Image = (Image)resimler[oyunEl[i]];
                acikKartSayisi++;
            }
        }
        #endregion

        #region Puanları Hesapla
        private void elPuanları()
        {
            int toplamPuan = 0, kartPuan = 0;

            for (int i = 0; i < 4; i++)
            {
                for (int k = 0; k < el; k++)
                {
                    if (oyunEl[i * el + k] % 13 == 0)
                        kartPuan = 11;
                    else
                        if (oyunEl[i * el + k] % 13 > 9)
                            kartPuan = 10;
                        else
                            kartPuan = oyunEl[i * el + k] % 13 + 1;
                    toplamPuan += kartPuan;
                }
                Label lbl = (Label)etiketler[i];
                lbl.Text = "Toplam Puan = " + toplamPuan.ToString();
                toplamPuan = 0;
            }
        }
        #endregion

        #region Puanları Hesapla
        private void ayniOlanKartlar()
        {
            string aynısıvar = "";
            int aynı = 1;
            int name = 4;
            for (int j = 0; j < 4; j++)
            {
                string etiket = "";
                aynısıvar = "";

                for (int i = 0; i < el; i++)
                {
                    if (aynısıvar.IndexOf((oyunEl[5 * j + i] % 13).ToString()) < 0)
                        for (int k = i + 1; k < el; k++)
                        {
                            if (oyunEl[5 * j + i] % 13 == oyunEl[5 * j + k] % 13)
                            {
                                aynı++;
                                aynısıvar = (oyunEl[5 * j + 1] % 13).ToString() + " ";
                            }
                        }
                    if (aynı > 1)
                        etiket += aynı.ToString() + " tane " + (oyunEl[5 * j + i] % 13 + 1).ToString() + " ";
                    aynı = 1;
                }
                if (etiket == "")
                    etiket += "Aynı Olan Kart Yok";
                else
                    etiket += " var";

                Label lblet = new Label();
                lblet.Name = name.ToString();
                lblet.Location = new Point(xx[j], yy[j] + 30);
                lblet.Text = etiket;
                etiketler.Add(lblet);
                this.Controls.Add(lblet);
                name++;
            }
        }
        #endregion

        private void denemeToolStripMenuItem_Click(object sender, EventArgs e)
        {
            List< Image > parcaResimler = new List< Image >();
            Bitmap resim;
            Graphics gr = null;
            Image alinanResim = Image.FromFile(@"C:\alinan.jpg");
            int sutunSayisi = 2;
            int satirSayisi = 5;
            int x = 0;
            int y = 0;
            for (int i = 0; i < satirSayisi; i++)
            {
                for (int k = 0; k < sutunSayisi; k++)
                {
                    Rectangle seçili_alan = new Rectangle(x, y, alinanResim.Width / sutunSayisi, alinanResim.Height / satirSayisi);
                    //Seçili alan büyüklüğünde bir Bitmap oluştur
                    resim = new Bitmap(seçili_alan.Width, seçili_alan.Height);
                    //Bu Bitmap için grafik nesnesi oluştur
                    gr = Graphics.FromImage(resim);
                    //Picture Box içindeki resmi yeni resmin 0,0 noktasına çiz
                    gr.DrawImage(alinanResim, 0, 0, seçili_alan, GraphicsUnit.Pixel);
                    //Yeni resmi parcaResimler içine image olarak kaydet
                    parcaResimler.Add(resim);
                    x += alinanResim.Width / sutunSayisi;
                }
                y += alinanResim.Height / satirSayisi;
                x = 0;
            }
            gr.Dispose();

            x = 30;
            y = 30;


            for (int i = 0; i < 2; i++)
            {
                for (int j = 0; j < 5; j++)
                {
                    PictureBox pcb = new PictureBox();

                    pcb.Size = new Size(alinanResim.Width / sutunSayisi, alinanResim.Height / satirSayisi);
                    pcb.Location = new Point(x, y);
                    pcb.Click += new EventHandler(pcb_Click);
                    pcb.BringToFront();
                    pcb.Image = parcaResimler[i * 5 + j];
                    x += 50;
                    y += 50;
                    this.Controls.Add(pcb);
                }
            }

        }

    }
}


UYGULAMAYI İNDİR

17 Mayıs 2013 Cuma

C Sharp Uygulamalar XBall Oyunu Programı



KONU : C Sharp Uygulamalar - C Sharp ( C# ) form xball oyunu oyna. Form üzerine timer ile kontrolleri hareket ettirme. C sharp forma dinamik kontrol ekleme. Mouse hareketlerine göre sağ sola kayan kontrol. Arraylist kullanımı ve örnekleri.





UYGULAMAYI İNDİR

C# DİĞER OYUN UYGULAMARI

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

namespace Xball
{
    public partial class Xball_Form : Form
    {
        int yerX = 5,yerY=5;
        ArrayList kutucuklar = new ArrayList();
        int kutuSayisi = 5;
        int Hak = 3;
        int Level = 1;
        int hareket = 5;

        public Xball_Form()
        {
            InitializeComponent();
        }

        private void Cball_Load(object sender, EventArgs e)
        {
            this.Text = "Seviye : " + Level.ToString() + "   Kalan hakkınız :" + Hak.ToString();
            Yenile();
            kutucuklarOlustur();
        }

        private void Yenile()
        {
            kutuSayisi = 5 * Level;
            Random rdn = new Random();
            int x = rdn.Next(0, 50);
            int y = rdn.Next(150, 250);
            ball.Location = new Point(x, y);
            timer1.Enabled = true;
            timer1.Interval = 5;
            yerX = 1 + Level * 1;
            yerY = -1 - Level * 1;
            if (yerX < 0)
                hareket = yerX * -1;
            else
                hareket = yerX;
        }

        private void timer1_Tick(object sender, EventArgs e)
        {
            Application.DoEvents();
            ballHareket();
            carpmaDenetimi();
            oyunBittiMi(sender, e);
            KalanHak(sender, e);
        }

        private void KalanHak(object sender, EventArgs e)
        {
            if (ball.Bottom > kontrol.Bottom - 15 && !(ball.Right >= kontrol.Left && ball.Left <= kontrol.Right))
            {
                Hak--;
                
                for (int i = 0; i < kutucuklar.Count; i++)
                {
                    Button btn = ((Button)kutucuklar[i]);
                    ((Button)kutucuklar[i]).Dispose();
                }
                kutucuklar.Clear();
                timer1.Enabled = false;
                DialogResult dr = DialogResult.None;
                if (Hak > 0)
                {
                    dr=MessageBox.Show("Yandınız. Kalan hakkınız : " + Hak.ToString());                   
                    if(dr ==DialogResult.OK)
                        Cball_Load(sender, e);
                }
                else if (Hak == 0)
                {
                    MessageBox.Show("GameOver");
                    this.Close();
                }
            }
        }

        private void oyunBittiMi(object sender, EventArgs e)
        {
            DialogResult dr = DialogResult.None;
            if (kutuSayisi == 0)
            {
                timer1.Enabled = false;
                dr = MessageBox.Show("Tebrikler. Seviye "+Level+" Bitirdiniz. ");
                Level++;
            }
            if (dr == DialogResult.OK)
                Cball_Load(sender, e);
        }

        private void ballHareket()
        {
            if (this.ClientSize.Width <= ball.Right)
            {
                yerX = yerX * -1;
            }
            else if (0 >= ball.Left)
            {
                yerX = yerX * -1;
            }

            if (this.ClientSize.Height <= ball.Bottom)
            {
                yerY = yerY * -1;
            }
            else if (0 >= ball.Top)
            {
                yerY = yerY * -1;
            }
            else if (ball.Bottom >= kontrol.Top + 5 && ball.Right >= kontrol.Left && ball.Left <= kontrol.Right)
            {
                yerY = yerY * -1;
            }

            ball.Location = new System.Drawing.Point(ball.Left + yerX, ball.Top + yerY);
        }

        private void Form1_MouseMove(object sender, MouseEventArgs e)
        {
            kontrol.Left = e.X;
        }

        private void kutucuklarOlustur()
        {
            for (int j = 0; j < Level; j++)
            {
                for (int i = 0; i < 5; i++)
                {
                    Button btn = new Button();
                    btn.Name = i.ToString();
                    btn.TabStop = false;
                    btn.Select();
                    btn.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
                    btn.Location = new Point(20 + i * 50, j*40+20 );
                    btn.Width = 40;
                    btn.BackColor = Color.Red;
                    this.Controls.Add(btn);
                    kutucuklar.Add(btn);
                }
            }
        }

        private void carpmaDenetimi() 
        {
            Rectangle r = new Rectangle();
            Rectangle t = new Rectangle();
       t.X=ball.Left;
                t.Y=ball.Top;
                t.Height=ball.Height;
                t.Width=ball.Width;
            for (int i = 0; i < kutucuklar.Count; i++)
   {
                Button btn =((Button)kutucuklar[i]);
       r.X=btn.Left;
                r.Y=btn.Top;
                r.Height=btn.Height;
                r.Width=btn.Width;
                if (r.IntersectsWith(t))
                {
                    kutuSayisi--;

                    kutucuklar.RemoveAt(i);
                    if (yerY > 0 && yerX >0)
                    {
                        if (btn.Top <= ball.Bottom && btn.Left < ball.Right - hareket)
                            yerY = yerY * -1;
                        else
                            yerX = yerX * -1;
                    }
                    else
                        if (yerY > 0 && yerX < 0)
                        {
                            if (btn.Top <= ball.Bottom && btn.Right > ball.Left + hareket)
                                yerY = yerY * -1;
                            else
                                yerX = yerX * -1;
                        }
                        else
                            if (yerY < 0 && yerX > 0)
                            {
                                if (btn.Bottom >= ball.Top && btn.Left < ball.Right - hareket)
                                    yerY = yerY * -1;
                                else
                                    yerX = yerX * -1;
                            }
                            else
                                if (yerY < 0 && yerX < 0)
                                {
                                    if (btn.Bottom >= ball.Top && btn.Right > ball.Left + hareket)
                                        yerY = yerY * -1;
                                    else
                                        yerX = yerX * -1;
                                }


                    btn.Dispose();
                }
                Application.DoEvents();
   }
        }

    }
}

UYGULAMAYI İNDİR

C# DİĞER OYUN UYGULAMARI