コード例 #1
0
 void properti(Taslar t, Panel p)//taşlarımıza hareket kabiliyeti ekliyoruz
 {
     t.Left       = p.Left;
     t.MouseDown += new MouseEventHandler(Mouse_Down);
     t.MouseMove += new MouseEventHandler(Mouse_Move);
     t.MouseUp   += new MouseEventHandler(Mouse_Up);
 }
コード例 #2
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;
                    }
                }
            }
        }
コード例 #3
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
 }
コード例 #4
0
 public void cikar(Taslar tas)// listeden taş çıkarma metodu
 {
     list.Remove(tas);
 }
コード例 #5
0
        public List <Taslar> list = new List <Taslar>(); // listemiz, her nesne için farklı bir liste

        public void ekle(Taslar tas)                     // listeye taş ekleme
        {
            list.Add(tas);
        }