Ejemplo n.º 1
0
        public bool PiyonlaYiyebilirMi(Kare bulunduguKare, Kare gidecegiKare)
        {
            bool yiyebilirMi        = false;
            Tas  gidecegiYerdekiTas = Oyun.GetInstance().OyunTahtasi.Kareler.Where(i => i.KonumX == gidecegiKare.KonumX && i.KonumY == gidecegiKare.KonumY).First().UzerindeBulunanTas;

            if (gidecegiYerdekiTas != null)                                                   //gideceği yerde herhangi başka bir taş varsa
            {
                if (bulunduguKare.UzerindeBulunanTas.TasRengi == gidecegiYerdekiTas.TasRengi) //kendi takım arkadaşı varsa yiyemez
                {
                    yiyebilirMi = false;
                }
                else//rakipse
                {
                    if (bulunduguKare.UzerindeBulunanTas.TasRengi == TakimRengi.Beyaz)
                    {
                        if (bulunduguKare.KonumX - gidecegiKare.KonumX == 1 && gidecegiKare.KonumY - bulunduguKare.KonumY == 1)
                        {
                            yiyebilirMi = true;
                        }
                        if (bulunduguKare.KonumX - gidecegiKare.KonumX == -1 && gidecegiKare.KonumY - bulunduguKare.KonumY == 1)
                        {
                            yiyebilirMi = true;
                        }
                    }
                    else
                    {
                        if (bulunduguKare.KonumX - gidecegiKare.KonumX == -1 && gidecegiKare.KonumY - bulunduguKare.KonumY == -1)
                        {
                            yiyebilirMi = true;
                        }
                        if (bulunduguKare.KonumX - gidecegiKare.KonumX == 1 && gidecegiKare.KonumY - bulunduguKare.KonumY == -1)
                        {
                            yiyebilirMi = true;
                        }
                    }
                }
            }
            else//gideceği yerde taş yoksa yiyemez
            {
                yiyebilirMi = false;
            }


            return(yiyebilirMi);
        }
Ejemplo n.º 2
0
        public bool LSeklindeGidebilirMi(Kare bulunduguKare, Kare gidecegiKare)
        {
            bool ilerleyebilirMi    = true;
            Tas  gidecegiYerdekiTas = Oyun.GetInstance().OyunTahtasi.Kareler.Where(i => i.KonumX == gidecegiKare.KonumX && i.KonumY == gidecegiKare.KonumY).First().UzerindeBulunanTas;

            if (gidecegiYerdekiTas != null)                                                   //gideceği yerde herhangi başka bir taş varsa
            {
                if (bulunduguKare.UzerindeBulunanTas.TasRengi == gidecegiYerdekiTas.TasRengi) //kendi takım arkadaşı varsa gidemez
                {
                    ilerleyebilirMi = false;
                }
                else//rakip takım varsa
                {
                    ilerleyebilirMi = LGiderMi(bulunduguKare, gidecegiKare, ilerleyebilirMi);
                }
            }
            else//taş yoksa
            {
                ilerleyebilirMi = LGiderMi(bulunduguKare, gidecegiKare, ilerleyebilirMi);
            }
            return(ilerleyebilirMi);
        }
Ejemplo n.º 3
0
        public bool YatayDikeyGidebilirMi(Kare bulunduguKare, Kare gidecegiKare)
        {
            bool ilerleyebilirMi = true;

            //gitmek istenen yer yatay veya dikeyde mi
            if (bulunduguKare.KonumX == gidecegiKare.KonumX || bulunduguKare.KonumY == gidecegiKare.KonumY)
            {
                int x = bulunduguKare.KonumX;
                int y = bulunduguKare.KonumY;

                while (true)
                {
                    //yukarı ilerleme isteği
                    if (gidecegiKare.KonumY > bulunduguKare.KonumY)
                    {
                        y++;
                    }
                    //aşağı ilerleme isteği
                    else if (gidecegiKare.KonumY < bulunduguKare.KonumY)
                    {
                        y--;
                    }
                    //sola ilerleme isteği
                    else if (gidecegiKare.KonumX < bulunduguKare.KonumX)
                    {
                        x--;
                    }
                    //sağa ilerleme isteği
                    else if (gidecegiKare.KonumX > bulunduguKare.KonumX)
                    {
                        x++;
                    }

                    //gidilmek istenen kareye gelindiyse
                    if (gidecegiKare.KonumX == x && gidecegiKare.KonumY == y)
                    {
                        Tas gidecegiYerdekiTas = Oyun.GetInstance().OyunTahtasi.Kareler.Where(i => i.KonumX == gidecegiKare.KonumX && i.KonumY == gidecegiKare.KonumY).First().UzerindeBulunanTas;
                        if (gidecegiYerdekiTas != null)                                                   //gideği yerde taş varsa
                        {
                            if (bulunduguKare.UzerindeBulunanTas.TasRengi == gidecegiYerdekiTas.TasRengi) //takım arkadaşıysa
                            {
                                ilerleyebilirMi = false;
                            }
                        }
                        break;
                    }
                    else
                    {
                        if (Oyun.GetInstance().OyunTahtasi.Kareler.Where(i => i.KonumX == x && i.KonumY == y).First().UzerindeBulunanTas != null)//yolda taş varsa ilerleyemez
                        {
                            ilerleyebilirMi = false;
                            break;
                        }
                    }
                }
            }
            else
            {
                ilerleyebilirMi = false;
            }
            return(ilerleyebilirMi);
        }
Ejemplo n.º 4
0
        public bool CaprazIlerleyebilirMi(Kare bulunduguKare, Kare gidecegiKare)
        {
            bool ilerleyebilirMi = true;

            //x ve y koordinatları farkı eşit mi yani çapraz da mı
            if (Math.Abs(bulunduguKare.KonumX - gidecegiKare.KonumX) ==
                Math.Abs(bulunduguKare.KonumY - gidecegiKare.KonumY))
            {
                int x = bulunduguKare.KonumX;
                int y = bulunduguKare.KonumY;

                while (true)
                {
                    //yukarı sol çapraza ilerleme isteği mi
                    if (gidecegiKare.KonumY > bulunduguKare.KonumY && gidecegiKare.KonumX < bulunduguKare.KonumX)
                    {
                        x--;
                        y++;
                    }
                    //yukarı sağ çapraza ilerleme isteği mi
                    else if (gidecegiKare.KonumY > bulunduguKare.KonumY && gidecegiKare.KonumX > bulunduguKare.KonumX)
                    {
                        x++;
                        y++;
                    }
                    //aşağı sağ çapraza ilerleme isteği mi
                    else if (gidecegiKare.KonumY < bulunduguKare.KonumY && gidecegiKare.KonumX > bulunduguKare.KonumX)
                    {
                        x++;
                        y--;
                    }
                    //aşağı sol çapraza ilerleme isteği mi
                    else if (gidecegiKare.KonumY < bulunduguKare.KonumY && gidecegiKare.KonumX < bulunduguKare.KonumX)
                    {
                        x--;
                        y--;
                    }

                    //gidilmek istenen kareye gelindiyse
                    if (gidecegiKare.KonumX == x && gidecegiKare.KonumY == y)
                    {
                        Tas gidecegiYerdekiTas = Oyun.GetInstance().OyunTahtasi.Kareler.Where(i => i.KonumX == gidecegiKare.KonumX && i.KonumY == gidecegiKare.KonumY).First().UzerindeBulunanTas;
                        if (gidecegiYerdekiTas != null)
                        {
                            if (bulunduguKare.UzerindeBulunanTas.TasRengi == gidecegiYerdekiTas.TasRengi)//takım arkadaşıysa
                            {
                                ilerleyebilirMi = false;
                            }
                        }
                        break;
                    }

                    else
                    {
                        if (Oyun.GetInstance().OyunTahtasi.Kareler.Where(i => i.KonumX == x && i.KonumY == y).First().UzerindeBulunanTas != null)//yolda taş varsa ilerleyemez
                        {
                            ilerleyebilirMi = false;
                            break;
                        }
                    }
                }
            }
            else//gidilmek istenen kısım çaprazda değilse
            {
                ilerleyebilirMi = false;
            }
            return(ilerleyebilirMi);
        }