コード例 #1
0
ファイル: PartidaXadrez.cs プロジェクト: Dimas9753/xadrez
        public void ExecutaMovimento(Posicao _origem, Posicao _destino)
        {
            Peca p = tabuleiro.RetirarPeca(_origem);

            p.IncrementarQtdMovimento();
            Peca pecacapturada = tabuleiro.RetirarPeca(_destino);

            tabuleiro.ColocarPeca(p, _destino);
        }
コード例 #2
0
        public void ExecutaMovimento(Posicao origem, Posicao destino)
        {
            Peca p = Tab.RetirarPeca(origem);

            p.IncrementarQtdMovimento();
            Peca PecaCapturada = Tab.RetirarPeca(destino);

            Tab.ColocarPeca(p, destino);
        }
コード例 #3
0
        public Peca ExecutaMovimento(Posicao origem, Posicao destino)
        {
            Peca p = Tab.RetirarPeca(origem);

            p.IncrementarQtdMovimento();
            Peca pecaCapturada = Tab.RetirarPeca(destino);

            Tab.ColocarPeca(p, destino);
            if (pecaCapturada != null)
            {
                this._capturadas.Add(pecaCapturada);
            }

            //#jogadaEspecial Roque Pequeno

            if (p is Rei && destino.Coluna == origem.Coluna + 2)
            {
                Posicao origemDaTorre  = new Posicao(origem.Linha, origem.Coluna + 3);
                Posicao destinoDaTorre = new Posicao(origem.Linha, origem.Coluna + 1);
                Peca    Torre          = Tab.RetirarPeca(origemDaTorre);
                Torre.IncrementarQtdMovimento();
                Tab.ColocarPeca(Torre, destinoDaTorre);
            }

            //#jogadaEspecial Roque Grande

            if (p is Rei && destino.Coluna == origem.Coluna - 2)
            {
                Posicao origemDaTorre  = new Posicao(origem.Linha, origem.Coluna - 4);
                Posicao destinoDaTorre = new Posicao(origem.Linha, origem.Coluna - 1);
                Peca    Torre          = Tab.RetirarPeca(origemDaTorre);
                Torre.IncrementarQtdMovimento();
                Tab.ColocarPeca(Torre, destinoDaTorre);
            }

            //#jogadaEspecial en passant
            if (p is Peao)
            {
                if (origem.Coluna != destino.Coluna && pecaCapturada == null)
                {
                    Posicao posP;
                    if (p.Cor == Cor.Branca)
                    {
                        posP = new Posicao(destino.Linha + 1, destino.Coluna);
                    }
                    else
                    {
                        posP = new Posicao(destino.Linha - 1, destino.Coluna);
                    }
                    pecaCapturada = Tab.RetirarPeca(posP);
                    _capturadas.Add(pecaCapturada);
                }
            }

            return(pecaCapturada);
        }
コード例 #4
0
ファイル: Partida.cs プロジェクト: TheHumphrey/Console-Xadrez
        public Peca ExecutaMovimento(Posicao origem, Posicao destino)
        {
            Peca p = Tab.RetirarPeca(origem);

            p.IncrementarQtdMovimento();
            Peca PecaCapturada = Tab.RetirarPeca(destino);

            Tab.ColocarPeca(p, destino);
            if (PecaCapturada != null)
            {
                Capturadas.Add(PecaCapturada);
            }

            // #Jogada especial roque pequeno
            if (p is Rei && destino.Coluna == origem.Coluna + 2)
            {
                Posicao origemT  = new Posicao(origem.Linha, origem.Coluna + 3);
                Posicao destinoT = new Posicao(origem.Linha, origem.Coluna + 1);
                Peca    T        = Tab.RetirarPeca(origemT);
                T.IncrementarQtdMovimento();
                Tab.ColocarPeca(T, destinoT);
            }

            // #Jogada especial roque Grande
            if (p is Rei && destino.Coluna == origem.Coluna - 2)
            {
                Posicao origemT  = new Posicao(origem.Linha, origem.Coluna - 4);
                Posicao destinoT = new Posicao(origem.Linha, origem.Coluna - 1);
                Peca    T        = Tab.RetirarPeca(origemT);
                T.IncrementarQtdMovimento();
                Tab.ColocarPeca(T, destinoT);
            }

            //#Jogada especial en passant
            if (p is Peao)
            {
                if (origem.Coluna != destino.Coluna && PecaCapturada == null)
                {
                    Posicao posP;
                    if (p.Collor == Cor.Branca)
                    {
                        posP = new Posicao(destino.Linha + 1, destino.Coluna);
                    }
                    else
                    {
                        posP = new Posicao(destino.Linha - 1, destino.Coluna);
                    }
                    PecaCapturada = Tab.RetirarPeca(posP);
                    Capturadas.Add(PecaCapturada);
                }
            }

            return(PecaCapturada);
        }
コード例 #5
0
        public Peca ExecutaMovimento(Posicao origem, Posicao destino)
        {
            Peca p = Tabuleiro.RetirarPeca(origem);

            p.IncrementarQtdMovimento();
            Peca pecaCapturada = Tabuleiro.RetirarPeca(destino);

            Tabuleiro.ColocarPeca(p, destino);
            if (pecaCapturada != null)
            {
                Capturadas.Add(pecaCapturada);
            }
            //#jogada especial roque PEQUENO
            if (p is Rei && destino.Coluna == origem.Coluna + 2)
            {
                Posicao origemT  = new Posicao(origem.Linha, origem.Coluna + 3);
                Posicao destinoT = new Posicao(origem.Linha, origem.Coluna + 1);
                Peca    torre    = Tabuleiro.RetirarPeca(origemT);
                torre.IncrementarQtdMovimento();
                Tabuleiro.ColocarPeca(torre, destinoT);
            }

            //#jogada especial roque GRANDE
            if (p is Rei && destino.Coluna == origem.Coluna - 2)
            {
                Posicao origemT  = new Posicao(origem.Linha, origem.Coluna - 4);
                Posicao destinoT = new Posicao(origem.Linha, origem.Coluna - 1);
                Peca    torre    = Tabuleiro.RetirarPeca(origemT);
                torre.IncrementarQtdMovimento();
                Tabuleiro.ColocarPeca(torre, destinoT);
            }

            //#jogada especial enpassant
            if (p is Peao)
            {
                if (origem.Coluna != destino.Coluna && pecaCapturada == null)
                {
                    Posicao posP;
                    if (p.Cor == Cor.Branca)
                    {
                        posP = new Posicao(destino.Linha + 1, destino.Coluna);
                    }
                    else
                    {
                        posP = new Posicao(destino.Linha - 1, destino.Coluna);
                    }
                    pecaCapturada = Tabuleiro.RetirarPeca(posP);
                    Capturadas.Add(pecaCapturada);
                }
            }

            return(pecaCapturada);
        }