Пример #1
0
        public void DesfazMovimento(Posicao origem, Posicao destino, Peca pecaCapturada)
        {
            Peca p = Tab.RetirarPeca(destino);

            p.DecrementarQtdMovimentos();
            if (pecaCapturada != null)
            {
                Tab.ColocarPeca(pecaCapturada, destino);
                capturadas.Remove(pecaCapturada);
            }
            Tab.ColocarPeca(p, origem);

            // #jogadaespecial 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(destinoT);
                t.DecrementarQtdMovimentos();
                Tab.ColocarPeca(t, origemT);
            }

            // #jogadaespecial 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(destinoT);
                t.DecrementarQtdMovimentos();
                Tab.ColocarPeca(t, origemT);
            }
        }
Пример #2
0
        public void DesfazMovimento(Posicao origem, Posicao destino, Peca pecaCapturada)
        {
            Peca pecaMovimentada = Tab.RetirarPeca(destino);

            pecaMovimentada.DecrementarQtdMovimentos();
            if (pecaCapturada != null)
            {
                Tab.ColocarPeca(pecaCapturada, destino);
                Capturadas.Remove(pecaCapturada);
            }
            Tab.ColocarPeca(pecaMovimentada, origem);

            // #jogadaespecial roque pequeno
            if (pecaMovimentada 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(destinoT);
                T.DecrementarQtdMovimentos();
                Tab.ColocarPeca(T, origemT);
            }

            // #jogadaespecial roque grande
            if (pecaMovimentada 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(destinoT);
                T.DecrementarQtdMovimentos();
                Tab.ColocarPeca(T, origemT);
            }

            // #Jjogadaespecial en passant

            if (pecaCapturada is Peao)
            {
                if (origem.Coluna != destino.Coluna && pecaCapturada == VulneravelEnPassant)
                {
                    Peca    peao = Tab.RetirarPeca(destino);
                    Posicao posP;
                    if (pecaMovimentada.Cor == Cor.Branca)
                    {
                        posP = new Posicao(3, destino.Coluna);
                    }
                    else
                    {
                        posP = new Posicao(4, destino.Coluna);
                    }

                    Capturadas.Remove(pecaCapturada);
                    Tab.ColocarPeca(pecaCapturada, posP);
                }
            }
        }
        public void DesfazMovimento(Posicao origem, Posicao destino, Peca pecaCapturada)
        {
            Peca p = Tab.RetirarPeca(destino);

            p.DecrementarQtdMovimentos();
            if (pecaCapturada != null)
            {
                Tab.ColocarPeca(pecaCapturada, destino);
                Capturadas.Remove(pecaCapturada);
            }
            Tab.ColocarPeca(p, origem);
        }
Пример #4
0
        private void DesfazerMovimento(Posicao origem, Posicao destino, Peca pecaCapturada)
        {
            Peca p = Tabuleiro.RetirarPeca(destino);

            p.DecrementarQtdMovimentos();

            if (pecaCapturada != null)
            {
                Tabuleiro.ColocarPeca(pecaCapturada, destino);
                _capturadas.Remove(pecaCapturada);
            }
            Tabuleiro.ColocarPeca(p, origem);

            //JogadaEspecial Roque Pequeno
            if ((p is Rei) && ((origem.Coluna + 2) == destino.Coluna))
            {
                Posicao origemTorre  = new Posicao(origem.Linha, origem.Coluna + 3);
                Posicao destinoTorre = new Posicao(origem.Linha, origem.Coluna + 1);
                Peca    torre        = Tabuleiro.RetirarPeca(destinoTorre);
                torre.DecrementarQtdMovimentos();
                Tabuleiro.ColocarPeca(torre, origemTorre);
            }

            //JogadaEspecial Roque Grande
            if ((p is Rei) && ((origem.Coluna - 2) == destino.Coluna))
            {
                Posicao origemTorre  = new Posicao(origem.Linha, origem.Coluna - 4);
                Posicao destinoTorre = new Posicao(origem.Linha, origem.Coluna - 1);
                Peca    torre        = Tabuleiro.RetirarPeca(destinoTorre);
                torre.DecrementarQtdMovimentos();
                Tabuleiro.ColocarPeca(torre, origemTorre);
            }

            //Jogada Especial En Passant
            if (p is Peao)
            {
                if ((origem.Coluna != destino.Coluna) && (pecaCapturada == EnPassant))
                {
                    Peca    peao = Tabuleiro.RetirarPeca(destino);
                    Posicao posicaoPeao;
                    if (p.Cor == Cor.Branca)
                    {
                        posicaoPeao = new Posicao(3, destino.Coluna);
                    }
                    else
                    {
                        posicaoPeao = new Posicao(4, destino.Coluna);
                    }
                    Tabuleiro.ColocarPeca(peao, posicaoPeao);
                }
            }
        }
Пример #5
0
        public void desfazMovimento(Posicao origem, Posicao destino, Peca capturada)
        {
            Peca p = tabuleiro.retirarPeca(destino);

            p.DecrementarQtdMovimentos();

            if (capturada != null)
            {
                tabuleiro.colocarPeca(capturada, destino);
                capturadas.Remove(capturada);
            }
            tabuleiro.colocarPeca(p, origem);
        }
Пример #6
0
        public void DesfazMovimento(Posicao origem, Posicao destino, Peca pecaCapturada)
        {
            Peca p = tab.RetirarPeca(destino);

            p.DecrementarQtdMovimentos();
            if (pecaCapturada != null)
            {
                tab.ColocarPeca(pecaCapturada, destino);
                capturadas.Remove(pecaCapturada);
            }
            tab.ColocarPeca(p, origem);

            // #jogadaespecia 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(destinoT);
                t.DecrementarQtdMovimentos();
                tab.ColocarPeca(t, origemT);
            }

            // #jogadaespecia 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(destinoT);
                t.DecrementarQtdMovimentos();
                tab.ColocarPeca(t, origemT);
            }

            // #jogadaespecail en passant
            if (p is Peao)
            {
                if (origem.Coluna != destino.Coluna && pecaCapturada == VuneravelEnPassant)
                {
                    Peca    peao = tab.RetirarPeca(destino);
                    Posicao posP;
                    if (p.Cor.Value == Cor.Branca)
                    {
                        posP = new Posicao(3, destino.Coluna);
                    }
                    else
                    {
                        posP = new Posicao(4, destino.Coluna);
                    }
                    tab.ColocarPeca(peao, posP);
                }
            }
        }
Пример #7
0
        private void DesfazMovimento(Posicao origem, Posicao destino, Peca pecaCapturada)
        {
            Peca p = Tabuleiro.RetirarPeca(destino);
            p.DecrementarQtdMovimentos();
            if (pecaCapturada != null)
            {
                Tabuleiro.ColocarPeca(pecaCapturada, destino);
                PecasCapturadas.Remove(pecaCapturada);
            }
            Tabuleiro.ColocarPeca(p, origem);
            //#jogadaEspecal roque pequeno
            if (p is Rei && destino.Coluna == origem.Coluna + 2)
            {
                Posicao origemTorre = new Posicao(origem.Linha, origem.Coluna + 3);
                Posicao destinoTorre = new Posicao(origem.Linha, origem.Coluna + 1);
                Peca torre = Tabuleiro.RetirarPeca(destinoTorre);
                torre.DecrementarQtdMovimentos();
                Tabuleiro.ColocarPeca(torre, origemTorre);
            }
            //#jogadaEspecal roque grande
            else if (p is Rei && destino.Coluna == origem.Coluna - 2)
            {
                Posicao origemTorre = new Posicao(origem.Linha, origem.Coluna - 4);
                Posicao destinoTorre = new Posicao(origem.Linha, origem.Coluna - 1);
                Peca torre = Tabuleiro.RetirarPeca(destinoTorre);
                torre.DecrementarQtdMovimentos();
                Tabuleiro.ColocarPeca(torre, origemTorre);
            }
            //#jogadaEspecial En Passant
            else if (p is Peao)
            {
                if (origem.Coluna != destino.Coluna && pecaCapturada == VuneravelEnPassant)
                {
                    Peca peao = Tabuleiro.RetirarPeca(destino);
                    Posicao posicaoPeao;
                    if (p.Cor == Cor.Branca)
                    {
                        posicaoPeao = new Posicao(3, destino.Coluna);
                    } else
                    {
                        posicaoPeao = new Posicao(4, destino.Coluna);
                    }
                    Tabuleiro.ColocarPeca(peao, posicaoPeao);
                }
            }

        }
Пример #8
0
        public void DesfazerMovimento(Posicao origem, Posicao destino, Peca pecaCapturada)
        {
            Peca pecaMovimentada = Tabuleiro.RetirarPeca(destino);

            pecaMovimentada.DecrementarQtdMovimentos();
            if (pecaCapturada != null)
            {
                Tabuleiro.InserirPeca(pecaCapturada, destino);
                PecasCapturadas.Remove(pecaCapturada);
            }
            Tabuleiro.InserirPeca(pecaMovimentada, origem);

            // #JogadaEspecial Roque Pequeno
            if (pecaMovimentada is Rei && destino.Coluna == origem.Coluna + 2)
            {
                Posicao origemTorre  = new Posicao(origem.Linha, origem.Coluna + 3);
                Posicao destinoTorre = new Posicao(origem.Linha, origem.Coluna + 1);
                Peca    tempTorre    = Tabuleiro.RetirarPeca(destinoTorre);
                tempTorre.DecrementarQtdMovimentos();
                Tabuleiro.InserirPeca(tempTorre, origemTorre);
            }
            // #JogadaEspecial Roque Grande
            if (pecaMovimentada is Rei && destino.Coluna == origem.Coluna - 2)
            {
                Posicao origemTorre  = new Posicao(origem.Linha, origem.Coluna - 4);
                Posicao destinoTorre = new Posicao(origem.Linha, origem.Coluna - 1);
                Peca    tempTorre    = Tabuleiro.RetirarPeca(destinoTorre);
                tempTorre.DecrementarQtdMovimentos();
                Tabuleiro.InserirPeca(tempTorre, origemTorre);
            }
            // #JogadaEspecial En Passant
            if (pecaMovimentada is Peao)
            {
                if (origem.Coluna != destino.Coluna && pecaCapturada == VulneravelEnPassant)
                {
                    Peca    peao = Tabuleiro.RetirarPeca(destino);
                    Posicao tempPos;
                    tempPos = (pecaMovimentada.Cor == Cor.branca)? new Posicao(3, destino.Coluna):
                              new Posicao(4, destino.Coluna);
                    Tabuleiro.InserirPeca(peao, tempPos);
                }
            }
        }