Esempio n. 1
0
        /// <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();
        }
Esempio n. 2
0
        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();
        }
Esempio n. 3
0
        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();
        }
Esempio n. 4
0
        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();
        }
Esempio n. 5
0
        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();
        }
Esempio n. 6
0
        /// <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();
        }
Esempio n. 7
0
        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();
        }