Esempio n. 1
0
        void Mouse_Down(object sender, MouseEventArgs e)// mouse tıklanma anı
        {
            secili_tas = (Taslar)sender as Taslar;
            if (oyuncu1 && secili_tas.GetType() != typeof(SiyahTas))// siyahın sırası ise sadece siyah taşlar hareket eder
            {
                return;
            }
            else if (oyuncu2 && secili_tas.GetType() != typeof(BeyazTas))// beyazın sırası ise sadece beyaz hareket eder
            {
                return;
            }
            suruklenme_durumu = true;
            secili_tas.Cursor = Cursors.SizeAll;
            position          = e.Location;

            Rectangle mouse = new Rectangle(secili_tas.Left, secili_tas.Top, 2, 2);                                        // imlec için 2*2 kare oluşturduk

            for (int i = 0; i < 24; i++)                                                                                   // hangi panele tıkladığımızı kontrol edip, seçtiğimiz taşı listeden çıkarıyoruz
            {
                Rectangle panel = new Rectangle(paneller[i].Left, paneller[i].Top, paneller[i].Width, paneller[i].Height); // panel için dikdörtgen oluşturduk
                if (mouse.IntersectsWith(panel))                                                                           // mouse imleci ile tüm panellerin kesişimlerini kontrol ediyoruz, kesişiyor ise true değer döner
                {
                    ilki = i;
                    kolonlar[i].cikar(secili_tas);                                                                      // taşı listeden çıkardık
                    tasoncekikonum = kolonlar[i];                                                                       // önceki konumunu lazım olabileceğinden saklıyoruz
                    tasoncekiko    = paneller[i];                                                                       // aynı şekilde önceki konumunu saklıyoruz
                    break;                                                                                              // for dan çıkıyoruz
                }
                else if (i == 23)                                                                                       // 24 panelden hiç biri ile kesişim yok ise, kırılan taşların bulunduğu panel ile kesişimi kontrol edeceğiz
                {
                    Rectangle panelb = new Rectangle(bpanel[0].Left, bpanel[0].Top, bpanel[0].Width, bpanel[0].Height); //kırık taşları tuttuğumuz
                    Rectangle panels = new Rectangle(spanel[0].Left, spanel[0].Top, spanel[0].Width, spanel[0].Height); //paneller için dikdörtgernler oluşturduk
                    if (mouse.IntersectsWith(panelb))                                                                   // kesişimlerini kontrol ettik
                    {
                        ilki = -1;
                        bkolon[0].cikar(secili_tas); // kırık siyah taşları tuttuğumuz panel ile kesişim var ise, taşı listeden çıkarıyoruz
                        tasoncekikonum = bkolon[0];  // önceki konumu yine saklıyoruz
                        tasoncekiko    = bpanel[0];
                        break;
                    }
                    else if (mouse.IntersectsWith(panels))
                    {
                        ilki = 24;
                        skolon[0].cikar(secili_tas); // aynı şekilde kırık beyaz taşları ile kesişim var ise taşı isteden çıkarıyoruz
                        tasoncekikonum = skolon[0];  // önceki konum yine saklıyoruz
                        tasoncekiko    = spanel[0];
                        break;
                    }
                }
            }
        }
Esempio n. 2
0
 public Boolean tasGonder(Taslar tas, int satir, kolon onceki, kolon skolon, kolon bkolon)
 {                                                      // listeye taş eklemeyi kontrol etme metodu, uygunluğuna göre farklı şekilde listeye taş ekleniyor veya çıkarılıyor
     if (list.Count == 1)                               // taşı yerleştirmek istediğimiz listede sadece 1 taş var ise
     {
         if (list[0].GetType() != tas.GetType())        // ve o taş seçtiğimiz taş ile farklı tipte ise(beyaz ve siyah)
         {
             if (list[0].GetType() == typeof(BeyazTas)) // listedeki 1 tek taş olan taş beyaz ise
             {
                 list[0].Top  = 250;                    //taşın konumunu değiştiriyoruz
                 list[0].Left = 382;                    //
                 list.Add(tas);                         // seçili taşı istediğimiz isteye ekiyoruz
                 bkolon.list.Add(list[0]);              // tek olan taşı beyaz kırık taşlar listesine ekliyoruz
                 list.Remove(list[0]);
             }
             else if (list[0].GetType() == typeof(SiyahTas)) // lsitedeki tek taş siyah ise
             {
                 list[0].Top  = 250;                         //taşın konumunu değiştiriyoruz
                 list[0].Left = 511;                         //
                 list.Add(tas);                              // seçili taşı istediğimiz isteye ekiyoruz
                 skolon.list.Add(list[0]);                   // tek olan taşı siyah kırık taşlar listesine ekliyoruz
                 list.Remove(list[0]);
             }
             //list.Remove(list[0]);// tek olan taşı eski listesinden siliyoruz
             return(true);// taş kırma işemini yaptıktan sonra, bu metoddan çıkıyoruz, ve seçii taşı yerleştirdiğimizi göstermek için geriye true değeri dönderiyoruz
         }
     }
     else
     {
         if (list.Count > 0 && list[0].GetType() != tas.GetType())
         {                     // taşı yerleştirmek istediğimiz listede 1 den fazla taş var ise ve seçili taş ile farklı tipte ise
             onceki.ekle(tas); // taşın buraya yerleştiremeyiz, bu yüzden taşı eski konumuna geri yerleştiriyoruz
             return(false);    // taşın yeri değişmediği ve bunu göstermek için geriye false değer döndürüyoruz
         }
     }
     ekle(tas);    // bunların haricinde seçili taşı istediğimiz yere yerleştiriyoruz
     return(true); // yerleştirdiğimiz için geriye true değer dönderiyoruz
 }
Esempio n. 3
0
        private void Form1_Load(object sender, EventArgs e)
        {
            paneller = new Panel[24];// paneller ve kolonlar dizilerimizi oluşturduk
            kolonlar = new kolon[24];
            bpanel   = new Panel[2];
            spanel   = new Panel[2];
            bkolon   = new kolon[2];
            skolon   = new kolon[2];
            Panel p1, pb, ps;

            suruklenme_durumu = false;
            int px  = 47;
            int px2 = 846;

            for (int i = 0; i < 2; i++)// boyutları ve konumları
            {
                if (i == 0)
                {
                    bkolon[i] = new kolon(); // kolon oluşturduk

                    pb        = new Panel(); // panel oluşturduk
                    pb.Width  = 40;
                    pb.Height = 40;
                    pb.Top    = 250;
                    pb.Left   = 382;
                    bpanel[i] = pb;

                    skolon[i] = new kolon();
                    ps        = new Panel();
                    ps.Width  = 40;
                    ps.Height = 40;
                    ps.Top    = 250;
                    ps.Left   = 511;
                    spanel[i] = ps;
                }
                else
                {
                    bkolon[i] = new kolon();
                    pb        = new Panel();
                    pb.Width  = 40;
                    pb.Height = 40;
                    pb.Top    = 250;
                    pb.Left   = 47;
                    bpanel[i] = pb;

                    skolon[i] = new kolon();
                    ps        = new Panel();
                    ps.Width  = 40;
                    ps.Height = 40;
                    ps.Top    = 250;
                    ps.Left   = 846;
                    spanel[i] = ps;
                }
            }
            for (int i = 0; i < 24; i++)
            {
                kolonlar[i] = new kolon();
            }
            for (int i = 0; i < 24; i++)
            {
                if (i < 12)
                {
                    if (i == 6)
                    {
                        px2 -= 62;
                    }
                    p1          = new Panel();
                    p1.Width    = 60;
                    p1.Height   = 200;
                    p1.Left     = px2;
                    p1.Top      = 327;
                    paneller[i] = p1;
                    px2        -= 67;
                }
                else
                {
                    if (i == 18)
                    {
                        px += 62;
                    }
                    p1          = new Panel();
                    p1.Width    = 60;
                    p1.Height   = 200;
                    p1.Left     = px;
                    p1.Top      = 20;
                    paneller[i] = p1;
                    px         += 67;
                }
            }
            for (int i = 0; i < 5; i++)//Taşlarımızı oluşturuyoruz ve listemize ekliyoruz
            {
                Taslar tas;
                tas     = new SiyahTas();// tas oluşturdum
                tas.Top = i * 40;
                properti(tas, paneller[12]);
                kolonlar[12].ekle(tas);
            }

            for (int i = 0; i < 3; i++)
            {
                Taslar tas;
                tas     = new BeyazTas();
                tas.Top = i * 40;
                properti(tas, paneller[16]);
                kolonlar[16].ekle(tas);
            }

            for (int i = 0; i < 5; i++)
            {
                Taslar tas;
                tas     = new BeyazTas();
                tas.Top = i * 40;
                properti(tas, paneller[18]);
                kolonlar[18].ekle(tas);
            }

            for (int i = 0; i < 2; i++)
            {
                Taslar tas;
                tas     = new SiyahTas();
                tas.Top = i * 40;
                properti(tas, paneller[23]);
                kolonlar[23].ekle(tas);
            }

            for (int i = 0; i < 5; i++)
            {
                Taslar tas;
                tas     = new BeyazTas();
                tas.Top = paneller[11].Top + paneller[11].Height - i * 40;
                properti(tas, paneller[11]);
                kolonlar[11].ekle(tas);
            }

            for (int i = 0; i < 3; i++)
            {
                Taslar tas;
                tas     = new SiyahTas();
                tas.Top = paneller[7].Top + paneller[7].Height - i * 40;
                properti(tas, paneller[7]);
                kolonlar[7].ekle(tas);
            }

            for (int i = 0; i < 5; i++)
            {
                Taslar tas;
                tas     = new SiyahTas();
                tas.Top = paneller[5].Top + paneller[5].Height - i * 40;
                properti(tas, paneller[5]);
                kolonlar[5].ekle(tas);
            }

            for (int i = 0; i < 2; i++)
            {
                Taslar tas;
                tas     = new BeyazTas();
                tas.Top = paneller[0].Top + paneller[0].Height - i * 40;
                properti(tas, paneller[0]);
                kolonlar[0].ekle(tas);
            }
            for (int i = 0; i < 24; i++)// taşlarımızı zemine ekliyoruz
            {
                int top = 20;
                if (i < 12)
                {
                    top = 490;
                }
                for (int k = 0; k < kolonlar[i].list.Count; k++)
                {
                    kolonlar[i].list[k].Top = top;
                    if (k < 4)
                    {
                        if (i < 12)
                        {
                            top -= 40;
                        }
                        else
                        {
                            top += 40;
                        }
                    }
                    zemin.Controls.Add(kolonlar[i].list[k]);
                }
            }
        }