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