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); }
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); }
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); }
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); }