public void DesfazMovimento(Posicao origem, Posicao destino, Peca pecaCapturada) { Peca p = Tab.RetirarPeca(destino); p.DecrementaQtdMovimento(); 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(destino.Linha, destino.Coluna + 1); Peca t = Tab.RetirarPeca(destinoT); t.DecrementaQtdMovimento(); Tab.colocarPeca(t, origemT); } // #jogada especial - Roque pequeno if (p is Rei && destino.Coluna == origem.Coluna - 2) { Posicao origemT = new Posicao(origem.Linha, origem.Coluna - 4); Posicao destinoT = new Posicao(destino.Linha, destino.Coluna - 1); Peca t = Tab.RetirarPeca(destinoT); t.DecrementaQtdMovimento(); Tab.colocarPeca(t, origemT); } }
public void ResetarJogada(Posicao origem, Posicao destino, Peca pecaCapturada) { Peca p = tabuleiro.RetiraPeca(destino); p.DecrementaQtdMovimento(); if (pecaCapturada != null) { tabuleiro.ColocaPeca(pecaCapturada, destino); pecasCapturadas.Remove(pecaCapturada); } tabuleiro.ColocaPeca(p, origem); }