private void DesfazMovimento(Posicao origem, Posicao destino, Peca capturada) { Peca p = Tab.RemovePeca(destino); p.DecrementarQtdMovimento(); if (capturada != null) { Tab.PutPeca(capturada, destino); Capturadas.Remove(capturada); } //#jogada especial 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 torreRoque = Tab.RemovePeca(destinoTorre); torreRoque.DecrementarQtdMovimento(); Tab.PutPeca(torreRoque, origemTorre); } //#jogada especial roque grande 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 torreRoque = Tab.RemovePeca(destinoTorre); torreRoque.DecrementarQtdMovimento(); Tab.PutPeca(torreRoque, origemTorre); } // #jogadaespecial en passant if (p is Peao) { if (origem.Coluna != destino.Coluna && capturada == VuneravelEnPassant) { Peca peao = Tab.RemovePeca(destino); Posicao posicaoPeao; if (p.Cor == Cor.Branca) { posicaoPeao = new Posicao(3, destino.Coluna); } else { posicaoPeao = new Posicao(4, destino.Coluna); } Tab.PutPeca(peao, posicaoPeao); } } Tab.PutPeca(p, origem); }
public void DesfazMovimento(Posicao origem, Posicao destino, Peca pecaCapturada) { Peca peca = Tabuleiro.RetirarPeca(destino); peca.DecrementarMovimentos(); if (pecaCapturada != null) { Tabuleiro.ColocarPeca(pecaCapturada, destino); Capturadas.Remove(pecaCapturada); } Tabuleiro.ColocarPeca(peca, origem); // #jogadaespecial Roque Pequeno if (peca 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.IncrementarMovimentos(); Tabuleiro.ColocarPeca(torre, origemTorre); } // #jogadaespecial Roque Grande if (peca 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.IncrementarMovimentos(); Tabuleiro.ColocarPeca(torre, origemTorre); } // #jogadaespecial en passant if (peca is Peao) { if (origem.Coluna != destino.Coluna && pecaCapturada == VulneravelEnPassant) { Peca peao = Tabuleiro.RetirarPeca(destino); Posicao posicaoPeao; if (peca.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 pecaCapturada) { Peca p = Tab.retirarPeca(destino); p.decrementarQteMovimentos(); if (pecaCapturada != null) { Tab.colocarPeca(pecaCapturada, destino); Capturadas.Remove(pecaCapturada); } Tab.colocarPeca(p, origem); //# 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(destinoT); T.decrementarQteMovimentos(); Tab.colocarPeca(T, origemT); } //# 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(destinoT); T.decrementarQteMovimentos(); Tab.colocarPeca(T, origemT); } //# jogada especial en passant if (p is Peao) { if (origem.Coluna != destino.Coluna && pecaCapturada == VulneravelEnPassant) { Peca peao = Tab.retirarPeca(destino); Posicao posP; if (peao.Cor == Cor.Branca) { posP = new Posicao(3, destino.Coluna); } else { posP = new Posicao(4, destino.Coluna); } Tab.colocarPeca(peao, posP); } } }
public void DesfazMovimento(Posicao origem, Posicao destino, Peca pecaCapturada) { Peca p = Tab.RetirarPeca(destino); p.DecrementarQteMovimento(); if (pecaCapturada != null) { Tab.ColocarPeca(pecaCapturada, destino); Capturadas.Remove(pecaCapturada); } Tab.ColocarPeca(p, origem); }
private 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); // #jogada especial roque 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); } 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.IncrementarQtdMovimentos(); Tab.ColocarPeca(T, origemT); } // enpassant if (p is Peao) { if (origem.Coluna != destino.Coluna && pecaCapturada == VulveravelEnPassant) { Peca peao = Tab.RetirarPeca(destino); Posicao posP; if (p.Cor == Cor.Branca) { posP = new Posicao(3, destino.Coluna); } else { posP = new Posicao(4, destino.Coluna); } Tab.ColocarPeca(peao, posP); } } }
public void DesfazMovimento(Posicao origem, Posicao destino, Peca pecaCapturada) { Peca p = Tab.retirarPeca(destino); p.DecrementMoviment(); if (pecaCapturada != null) { Tab.ColocarPeca(pecaCapturada, destino); Capturadas.Remove(pecaCapturada); } Tab.ColocarPeca(p, origem); //#JogadaEspecial Roque Pequeno if (p is King && 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 = Tab.PegaPeca(destinotorre); torre.DecrementMoviment(); Tab.ColocarPeca(torre, origemTorre); } //#JogadaEspecial Roque Grande if (p is King && 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 = Tab.PegaPeca(destinotorre); torre.DecrementMoviment(); Tab.ColocarPeca(torre, origemTorre); } //#JogadaEspecial EnPassant if (p is Pawn) { if (origem.Coluna != destino.Coluna && pecaCapturada == VuneravelEnPassant) { Peca peao = Tab.retirarPeca(destino); Posicao posP; if (p.Color == Cor.White) { posP = new Posicao(3, destino.Coluna); } else { posP = new Posicao(4, destino.Coluna); } Tab.ColocarPeca(peao, posP); } } }