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); //#jogadaespecial roque pequeno if (p is Rei && destino.Coluna == origem.Coluna - 2) { Posicao oriTorre = new Posicao(origem.Linha, origem.Coluna - 4); Posicao DesTorre = new Posicao(origem.Linha, origem.Coluna - 1); Peca T = Tab.RetirarPeca(DesTorre); T.DecrementarQteMovimentos(); Tab.ColocarPeca(T, oriTorre); } //#jogadaespecial roque grande if (p is Rei && destino.Coluna == origem.Coluna + 2) { Posicao oriTorre = new Posicao(origem.Linha, origem.Coluna + 3); Posicao DesTorre = new Posicao(origem.Linha, origem.Coluna + 1); Peca T = Tab.RetirarPeca(DesTorre); T.DecrementarQteMovimentos(); Tab.ColocarPeca(T, oriTorre); } //#jogadaespecial en passant if (p is Peao) { if (origem.Coluna != destino.Coluna && pecaCapturada == VulneravelEnPassant) { 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.DecrementarQteMovimentos(); if (PecaCapturada != null) { Tab.ColocarPecas(PecaCapturada, destino); PecasCapturadas.Remove(PecaCapturada); } Tab.ColocarPecas(p, origem); }
/////////////////////////////////////////////////////////////////////////////////////// public void DesfazMovimento(Posicao origem, Posicao destino, Peca PecaCapturada) { Peca p = tab.RetirarPeca(destino); // retirando uma peca da posição destino p.DecrementarQteMovimentos(); // decrementando quantidade de movimentos if (PecaCapturada != null) // teve uma peça capturada { tab.ColocarPeca(PecaCapturada, destino); capturadas.Remove(PecaCapturada); } tab.ColocarPeca(p, origem); if (p is Rei && destino.coluna == origem.coluna + 2) { //Origem da torre Posicao origemT = new Posicao(origem.linha, origem.coluna + 3); Posicao destinoT = new Posicao(origem.linha, origem.coluna + 1); //O destino vai ser o lugar onde o Rei esta Peca T = tab.RetirarPeca(destinoT); //retiro a peca T.DecrementarQteMovimentos(); //Incremento jogada tab.ColocarPeca(T, origemT); // Coloco a torre no luga } if (p is Rei && destino.coluna == origem.coluna - 2) { //Origem da torre Posicao origemT = new Posicao(origem.linha, origem.coluna - 4); Posicao destinoT = new Posicao(origem.linha, origem.coluna - 1); //O destino vai ser o lugar onde o Rei esta Peca T = tab.RetirarPeca(destinoT); //retiro a peca T.DecrementarQteMovimentos(); //Incremento jogada tab.ColocarPeca(T, origemT); // Coloco a torre no luga } //Jpgada E Passant if (p is Peao) { if (origem.coluna != destino.coluna && PecaCapturada == VulneravelInPassant) { 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); } } } }
public void DesfazMovimento(Posicao origem, Posicao destino, Peca PecaCapturada) { Peca p = Tabuleiro.RetirarPeca(destino); p.DecrementarQteMovimentos(); if (PecaCapturada != null) { Tabuleiro.ColocarPeca(PecaCapturada, destino); Capturadas.Remove(PecaCapturada); } Tabuleiro.ColocarPeca(p, origem); 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 = Tabuleiro.RetirarPeca(DestinoT); T.DecrementarQteMovimentos(); Tabuleiro.ColocarPeca(T, OrigemT); } //desfazendo #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 = Tabuleiro.RetirarPeca(DestinoT); T.DecrementarQteMovimentos(); Tabuleiro.ColocarPeca(T, OrigemT); } //desfazendo #jogada especial en passant if (p is Peao) { if (origem.Coluna != destino.Coluna && PecaCapturada == null) { Peca peao = Tabuleiro.RetirarPeca(destino); Posicao posP; if (p.Cor == Cor.Branca) { posP = new Posicao(3, destino.Coluna); } else { posP = new Posicao(4, destino.Coluna); } Tabuleiro.ColocarPeca(peao, posP); } } }
public void DesfazMovimento(Posicao origem, Posicao destino, Peca PecaCapturada) { Peca p = Tab.RetirarPeca(destino); p.DecrementarQteMovimentos(); if (PecaCapturada != null) { Tab.ColocarPecas(PecaCapturada, destino); PecasCapturadas.Remove(PecaCapturada); } Tab.ColocarPecas(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.DecrementarQteMovimentos(); Tab.ColocarPecas(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.DecrementarQteMovimentos(); Tab.ColocarPecas(T, OrigemT); } // #JogadaEspecial EnPassant if (p is Peao) { if (origem.Coluna != destino.Coluna && PecaCapturada == VulneravelEnPassant) { Peca peao = Tab.RetirarPeca(destino); Posicao posP; if (p.Cor == Cor.Branco) { posP = new Posicao(3, destino.Coluna); } else { posP = new Posicao(4, destino.Coluna); } Tab.ColocarPecas(peao, posP); } } }