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