Esempio n. 1
0
        private void LKontrol(Tas[,] t, int x, int fark)
        {
            if (Yer.Y + fark <= 7)
            {
                if (t[x, Yer.Y + fark] == null)
                {
                    Hamleler.Add(x); Hamleler.Add(Yer.Y + fark);
                }
                else
                {
                    DigerTasaHamle(t, x, Yer.Y + fark);
                }
            }

            if (Yer.Y - fark >= 0)
            {
                if (t[x, Yer.Y - fark] == null)
                {
                    Hamleler.Add(x); Hamleler.Add(Yer.Y - fark);
                }
                else
                {
                    DigerTasaHamle(t, x, Yer.Y - fark);
                }
            }
        }
Esempio n. 2
0
        private void DigerTasaHamle(Tas[,] t, int x, int y)
        {
            if (Renk == Renkler.Siyah && t[x, y].Renk == Renkler.Beyaz) // siyah fil beyazý yesin
            {
                Hamleler.Add(x); Hamleler.Add(y);
            }

            if (Renk == Renkler.Beyaz && t[x, y].Renk == Renkler.Siyah) // beyaz fil siyahý yesin
            {
                Hamleler.Add(x); Hamleler.Add(y);
            }
        }
Esempio n. 3
0
        private void DigerTasaHamle(Tas[,] t, int x, int y)
        {
            if (Renk == Renkler.Siyah && t[x, y].Renk == Renkler.Beyaz)
            {
                Hamleler.Add(x); Hamleler.Add(y);
            }

            if (Renk == Renkler.Beyaz && t[x, y].Renk == Renkler.Siyah)
            {
                Hamleler.Add(x); Hamleler.Add(y);
            }
        }
Esempio n. 4
0
        private void SahHareket(Vezir tasVezir, int x, int y)
        {
            int i;

            // Eðer vezirin gittiði yerlerde gönderdiðimiz koordinat da varsa hamle yapsýn...
            for (i = 0; i < tasVezir.Hamleler.Count; i += 2)
            {
                if ((int)tasVezir.Hamleler[i] == x && (int)tasVezir.Hamleler[i + 1] == y)
                {
                    Hamleler.Add(tasVezir.Hamleler[i]); Hamleler.Add(tasVezir.Hamleler[i + 1]);
                }
            }
        }
Esempio n. 5
0
 private void RokHesapla(Tas[,] t)
 {
     // Büyük Rok yap
     if (t[Yer.X - 4, Yer.Y] != null && t[Yer.X - 4, Yer.Y].tasTipi == Taslar.Kale)
     {
         if (t[Yer.X - 1, Yer.Y] == null && t[Yer.X - 2, Yer.Y] == null && t[Yer.X - 3, Yer.Y] == null)
         {
             Hamleler.Add(Yer.X - 2); Hamleler.Add(Yer.Y);
         }
     }
     // Küçük Rok yap
     if (t[Yer.X + 3, Yer.Y] != null && t[Yer.X + 3, Yer.Y].tasTipi == Taslar.Kale)
     {
         if (t[Yer.X + 1, Yer.Y] == null && t[Yer.X + 2, Yer.Y] == null)
         {
             Hamleler.Add(Yer.X + 2); Hamleler.Add(Yer.Y);
         }
     }
 }
Esempio n. 6
0
        public override void HamleHesapla(Tas[,] t)
        {
            bool ilkHamle = false;

            if (Renk == Renkler.Beyaz)
            {
                Yon = -1;
            }
            else
            {
                Yon = 1;
            }

            // piyonlar baþlangýç durumunda ise...
            if ((Yer.Y == 6 && Renk == Renkler.Beyaz) || (Yer.Y == 1 && Renk == Renkler.Siyah))
            {
                ilkHamle = true;
            }

            // Piyonun önünde boþ alan varsa...
            if (t[Yer.X, Yer.Y + Yon] == null)
            {
                Hamleler.Add(Yer.X); Hamleler.Add(Yer.Y + Yon);
            }

            // Piyonun ilk hamlesi ise ve önündeki iki alanda boþ ise...
            if (ilkHamle && t[Yer.X, Yer.Y + Yon] == null && t[Yer.X, Yer.Y + (2 * Yon)] == null)
            {
                Hamleler.Add(Yer.X); Hamleler.Add(Yer.Y + 2 * Yon);
            }

            // En saðdaki piyona týklandýðýnda saða hamle yolu göstermesini engelle...
            if (Yer.X + 1 < 8)
            {
                DigerTasaHamle(t, Yer.X + 1);
            }

            // En soldaki piyona týklandýðýnda sola hamle yolu gösterme
            if (Yer.X - 1 >= 0)
            {
                DigerTasaHamle(t, Yer.X - 1);
            }
        }
Esempio n. 7
0
 private void DigerTasaHamle(Tas[,] t, int x)
 {
     if (Renk == Renkler.Siyah)
     {
         if (t[x, Yer.Y + Yon] != null && t[x, Yer.Y + Yon].Renk == Renkler.Beyaz)
         {
             Hamleler.Add(x); Hamleler.Add(Yer.Y + Yon);
         }
     }
     if (Renk == Renkler.Beyaz)
     {
         if (t[x, Yer.Y + Yon] != null && t[x, Yer.Y + Yon].Renk == Renkler.Siyah)
         {
             if (t[x, Yer.Y + Yon].Renk == Renkler.Siyah)
             {
                 Hamleler.Add(x); Hamleler.Add(Yer.Y + Yon);
             }
         }
     }
 }
Esempio n. 8
0
        public override void HamleHesapla(Tas[,] t)
        {
            int i;

            // Vezirin bulunduðu yerde kale ve fil oluþturup hamleleri hesaplýyoruz
            Kale tasKale = new Kale(new Point(Yer.X, Yer.Y), Taslar.Kale, Renk);
            Fil  tasFil  = new Fil(new Point(Yer.X, Yer.Y), Taslar.Fil, Renk);

            tasKale.HamleHesapla(t);
            tasFil.HamleHesapla(t);

            for (i = 0; i < tasFil.Hamleler.Count; i += 2)
            {
                Hamleler.Add(tasFil.Hamleler[i]);
                Hamleler.Add(tasFil.Hamleler[i + 1]);
            }

            for (i = 0; i < tasKale.Hamleler.Count; i += 2)
            {
                Hamleler.Add(tasKale.Hamleler[i]);
                Hamleler.Add(tasKale.Hamleler[i + 1]);
            }
        }
Esempio n. 9
0
        public override void HamleHesapla(Tas[,] t)
        {
            int i;

            if (Yer.X < 7 && Yer.Y < 7)                                    // Sað alt çapraz
            {
                for (i = Yer.X + 1; i < 8 && (Yer.Y + i - Yer.X) < 8; i++) // Yolu kontrol et
                {
                    if (t[i, Yer.Y + i - Yer.X] == null)
                    {
                        Hamleler.Add(i); Hamleler.Add(Yer.Y + i - Yer.X);
                    }
                    else
                    {
                        DigerTasaHamle(t, i, Yer.Y + i - Yer.X);
                        break;
                    }
                }
            }

            if (Yer.X < 7 && Yer.Y > 0)                                     // Sað üst çapraza oynansýn..
            {
                for (i = Yer.X + 1; i < 8 && (Yer.Y + Yer.X - i) >= 0; i++) // Yolu kontrol et
                {
                    if (t[i, Yer.Y + Yer.X - i] == null)
                    {
                        Hamleler.Add(i); Hamleler.Add(Yer.Y + Yer.X - i);
                    }
                    else
                    {
                        DigerTasaHamle(t, i, Yer.Y + Yer.X - i);
                        break;
                    }
                }
            }

            if (Yer.X > 0 && Yer.Y < 7)                                     // Sol alt çapraza oynansýn..
            {
                for (i = Yer.X - 1; i >= 0 && (Yer.Y + Yer.X - i) < 8; i--) // Yolu kontrol et
                {
                    if (t[i, Yer.Y + Yer.X - i] == null)
                    {
                        Hamleler.Add(i); Hamleler.Add(Yer.Y + Yer.X - i);
                    }
                    else
                    {
                        DigerTasaHamle(t, i, Yer.Y + Yer.X - i);
                        break;
                    }
                }
            }

            if (Yer.X > 0 && Yer.Y > 0)                                      // Sol üst çapraza oynansýn..
            {
                for (i = Yer.X - 1; i >= 0 && (Yer.Y + i - Yer.X) >= 0; i--) // Yolu kontrol et
                {
                    if (t[i, Yer.Y + i - Yer.X] == null)
                    {
                        Hamleler.Add(i); Hamleler.Add(Yer.Y + i - Yer.X);
                    }
                    else
                    {
                        DigerTasaHamle(t, i, Yer.Y + i - Yer.X);
                        break;
                    }
                }
            }
        }
Esempio n. 10
0
        public override void HamleHesapla(Tas[,] t)
        {
            int i;

            if (Yer.X > 0) // Sola
            {
                for (i = Yer.X - 1; i >= 0; i--)
                {
                    if (t[i, Yer.Y] == null)
                    {
                        Hamleler.Add(i); Hamleler.Add(Yer.Y);
                    }
                    else
                    {
                        DigerTasaHamle(t, i, Yer.Y);
                        break;
                    }
                }
            }

            if (Yer.X < 7) // Saða
            {
                for (i = Yer.X + 1; i < 8; i++)
                {
                    if (t[i, Yer.Y] == null)
                    {
                        Hamleler.Add(i); Hamleler.Add(Yer.Y);
                    }
                    else
                    {
                        DigerTasaHamle(t, i, Yer.Y);
                        break;
                    }
                }
            }

            if (Yer.Y < 7) // Aþaðý
            {
                for (i = Yer.Y + 1; i < 8; i++)
                {
                    if (t[Yer.X, i] == null)
                    {
                        Hamleler.Add(Yer.X); Hamleler.Add(i);
                    }
                    else
                    {
                        DigerTasaHamle(t, Yer.X, i);
                        break;
                    }
                }
            }

            if (Yer.Y > 0)// Yukarý
            {
                for (i = Yer.Y - 1; i >= 0; i--)
                {
                    if (t[Yer.X, i] == null)
                    {
                        Hamleler.Add(Yer.X); Hamleler.Add(i);
                    }
                    else
                    {
                        DigerTasaHamle(t, Yer.X, i);
                        break;
                    }
                }
            }
        }