/// <summary> /// Herhangi Bi Koşula bakmaksızın Belirtilen Kordinata gider.. taş varsa yer yoksa sadece gider.. (Dikkat! : sadece Rok için Tasarlandı ) /// </summary> /// <param name="x"></param> /// <param name="y"></param> public virtual void MoveNonCheck(int x, int y) { if (ChessBoard.Squares[y, x].Tas == null) { ChessBoard.Squares[TasKordinat.Y, TasKordinat.X].Tas = null; ChessBoard.Squares[TasKordinat.Y, TasKordinat.X].GetBackgroundİmage(); ChessBoard.Squares[TasKordinat.Y, TasKordinat.X].Dolumu = false; TasKordinat.X = x; TasKordinat.Y = y; ChessBoard.Squares[y, x].Tas = this; ChessBoard.Squares[y, x].GetBackgroundİmage(); ChessBoard.Squares[y, x].Dolumu = true; İsMoved += 1; MakeCangoList(); } else { ChessBoard.Squares[TasKordinat.Y, TasKordinat.X].Tas = null; ChessBoard.Squares[TasKordinat.Y, TasKordinat.X].GetBackgroundİmage(); ChessBoard.Squares[TasKordinat.Y, TasKordinat.X].Dolumu = false; TasKordinat.X = x; TasKordinat.Y = y; ChessBoard.MevcutTaslar.Remove(ChessBoard.Squares[y, x].Tas); ChessBoard.Squares[y, x].Tas = this; ChessBoard.Squares[y, x].GetBackgroundİmage(); ChessBoard.Squares[y, x].Dolumu = true; İsMoved += 1; MakeCangoList(); } FillAllCanGoList(); FillAttackList(); if (İsEnemyKingDanger()) { int a = İsCheckMate(); if (a < 3) { MessageBox.Show("Şah Mat .. Oyun Bitti Tebrikler .."); } else if (a > 0) { MessageBox.Show("Şah.."); } } ChessBoard.AllPiyonisMoveUp(); }
public void LetsLongRook() { if (İsBlack) { MoveNonCheck(2, 7); ChessBoard.Squares[7, 0].Tas.MoveNonCheck(3, 7); ChessBoard.TurnOfBlack = !ChessBoard.TurnOfBlack; } else { MoveNonCheck(2, 0); ChessBoard.Squares[0, 0].Tas.MoveNonCheck(3, 0); ChessBoard.TurnOfBlack = !ChessBoard.TurnOfBlack; } ChessBoard.AllPiyonisMoveUp(); }
public void LetsShortRook() { if (İsBlack) { MoveNonCheck(6, 7); ChessBoard.Squares[7, 7].Tas.MoveNonCheck(5, 7); ChessBoard.TurnOfBlack = !ChessBoard.TurnOfBlack; } else { MoveNonCheck(6, 0); ChessBoard.Squares[0, 7].Tas.MoveNonCheck(5, 0); ChessBoard.TurnOfBlack = !ChessBoard.TurnOfBlack; } ChessBoard.AllPiyonisMoveUp(); }
public void LetsLeftEnpass() { if (!İsBlack) { MoveNonCheck(TasKordinat.X - 1, TasKordinat.Y); MoveNonCheck(TasKordinat.X, TasKordinat.Y + 1); ChessBoard.TurnOfBlack = !ChessBoard.TurnOfBlack; } else { MoveNonCheck(TasKordinat.X + 1, TasKordinat.Y); MoveNonCheck(TasKordinat.X, TasKordinat.Y - 1); ChessBoard.TurnOfBlack = !ChessBoard.TurnOfBlack; } ChessBoard.AllPiyonisMoveUp(); }
public override void Move(int x, int y) { //FillAllCanGoList(); //FillAttackList(); if (!FakeMove(x, y)) { MessageBox.Show("Şah Tehdit Altında Kalıyor Bu hamle yapılamaz.."); return; } FillAllCanGoList(); FillAttackList(); int OldX = TasKordinat.X, OldY = TasKordinat.Y; foreach (Kordinat VARIABLE in KordinatsCanGo) { if (VARIABLE.X == x && VARIABLE.Y == y && VARIABLE.KordinatType == KordinatType.Attack && CanEat(x, y)) { ChessBoard.Squares[OldY, OldX].Tas = null; ChessBoard.Squares[OldY, OldX].GetBackgroundİmage(); ChessBoard.Squares[OldY, OldX].Dolumu = false; TasKordinat.X = x; TasKordinat.Y = y; ChessBoard.MevcutTaslar.Remove(ChessBoard.Squares[y, x].Tas); ChessBoard.Squares[y, x].Tas = this; ChessBoard.Squares[y, x].GetBackgroundİmage(); ChessBoard.Squares[y, x].Dolumu = true; İsMoved += 1; MakeCangoList(); ChessBoard.TurnOfBlack = !ChessBoard.TurnOfBlack; break; } if (VARIABLE.X == x && VARIABLE.Y == y && VARIABLE.KordinatType == KordinatType.Normal && ChessBoard.Squares[y, x].Tas == null) { ChessBoard.Squares[OldY, OldX].Tas = null; ChessBoard.Squares[OldY, OldX].GetBackgroundİmage(); ChessBoard.Squares[OldY, OldX].Dolumu = false; TasKordinat.X = x; TasKordinat.Y = y; ChessBoard.Squares[y, x].Tas = this; ChessBoard.Squares[y, x].GetBackgroundİmage(); ChessBoard.Squares[y, x].Dolumu = true; İsMoved += 1; MakeCangoList(); ChessBoard.TurnOfBlack = !ChessBoard.TurnOfBlack; break; } } FillAllCanGoList(); FillAttackList(); if (İsEnemyKingDanger()) { int a = İsCheckMate(); if (a < 3) { MessageBox.Show("Şah Mat .. Oyun Bitti Tebrikler .."); } else if (a > 0) { MessageBox.Show("Şah.."); } } if (TasKordinat.Y == 0 || TasKordinat.Y == 7) { Form2 frm2 = new Form2(this); frm2.ShowDialog(); } ChessBoard.AllPiyonisMoveUp(); }
/// <summary> /// Taşı Hedef Konuma Götürür ve Buttonun çizim işlemlerini yapar , Taş Yenecekse Yer , Gidilecek Kare Boşsa Sadece gider /// </summary> /// <param name="x">X kordinatı</param> /// <param name="y">Y kordinatı</param> public virtual void Move(int x, int y) { if (!FakeMove(x, y)) { // Hamle Yapıldığında Şah Tehdit altında kalıyorsa yapılmasını engelleyen kısım . return; } int OldX = TasKordinat.X, OldY = TasKordinat.Y; foreach (Kordinat VARIABLE in KordinatsCanGo) { if (VARIABLE.X == x && VARIABLE.Y == y) { if (ChessBoard.Squares[y, x].Tas != null) { ChessBoard.Squares[OldY, OldX].Tas = null; ChessBoard.Squares[OldY, OldX].GetBackgroundİmage(); ChessBoard.Squares[OldY, OldX].Dolumu = false; TasKordinat.X = x; TasKordinat.Y = y; ChessBoard.MevcutTaslar.Remove(ChessBoard.Squares[y, x].Tas); ChessBoard.Squares[y, x].Tas = this; ChessBoard.Squares[y, x].GetBackgroundİmage(); ChessBoard.Squares[y, x].Dolumu = true; İsMoved += 1; MakeCangoList(); ChessBoard.TurnOfBlack = !ChessBoard.TurnOfBlack; break; } else { ChessBoard.Squares[OldY, OldX].Tas = null; ChessBoard.Squares[OldY, OldX].GetBackgroundİmage(); ChessBoard.Squares[OldY, OldX].Dolumu = false; TasKordinat.X = x; TasKordinat.Y = y; ChessBoard.Squares[y, x].Tas = this; ChessBoard.Squares[y, x].GetBackgroundİmage(); ChessBoard.Squares[y, x].Dolumu = true; İsMoved += 1; MakeCangoList(); ChessBoard.TurnOfBlack = !ChessBoard.TurnOfBlack; break; } } } FillAllCanGoList(); FillAttackList(); if (İsEnemyKingDanger()) { int a = İsCheckMate(); if (a < 3) { MessageBox.Show("Şah Mat .. Oyun Bitti Tebrikler .."); } else if (a > 0) { MessageBox.Show("Şah.."); } } ChessBoard.AllPiyonisMoveUp(); }
public override void Move(int x, int y) { if (!FakeMove(x, y)) { // Hamle Yapıldığında Şah Tehdit altında kalıyorsa yapılmasını engelleyen kısım . return; } int OldX = TasKordinat.X, OldY = TasKordinat.Y; foreach (Kordinat VARIABLE in KordinatsCanGo) { if (VARIABLE.X == x && VARIABLE.Y == y && VARIABLE.KordinatType == KordinatType.Attack && CanEat(x, y)) { ChessBoard.Squares[OldY, OldX].Tas = null; ChessBoard.Squares[OldY, OldX].GetBackgroundİmage(); ChessBoard.Squares[OldY, OldX].Dolumu = false; TasKordinat.X = x; TasKordinat.Y = y; ChessBoard.MevcutTaslar.Remove(ChessBoard.Squares[y, x].Tas); ChessBoard.Squares[y, x].Tas = this; ChessBoard.Squares[y, x].GetBackgroundİmage(); ChessBoard.Squares[y, x].Dolumu = true; İsMoved += 1; MakeCangoList(); ChessBoard.TurnOfBlack = !ChessBoard.TurnOfBlack; break; } if (VARIABLE.X == x && VARIABLE.Y == y && VARIABLE.KordinatType == KordinatType.Normal && ChessBoard.Squares[y, x].Tas == null) { ChessBoard.Squares[OldY, OldX].Tas = null; ChessBoard.Squares[OldY, OldX].GetBackgroundİmage(); ChessBoard.Squares[OldY, OldX].Dolumu = false; TasKordinat.X = x; TasKordinat.Y = y; ChessBoard.Squares[y, x].Tas = this; ChessBoard.Squares[y, x].GetBackgroundİmage(); ChessBoard.Squares[y, x].Dolumu = true; İsMoved += 1; MakeCangoList(); ChessBoard.TurnOfBlack = !ChessBoard.TurnOfBlack; break; } } FillAllCanGoList(); FillAttackList(); if (İsEnemyKingDanger()) { int a = İsCheckMate(); if (a < 3) { MessageBox.Show("Şah Mat .. Oyun Bitti Tebrikler .."); } else if (a > 0) { MessageBox.Show("Şah.."); } } //todo piyonun Karşı kareye çıkması multiplayer yazınca sorunlu . Tahta veya Taş metodu haline getirip Düzelticem sonra .!! //if (TasKordinat.Y == 0 || TasKordinat.Y == 7) //{ // Form2 frm2 = new Form2(this); // frm2.ShowDialog(); //} ChessBoard.AllPiyonisMoveUp(); }