public Peca ExecutaMovimento(Posicao origem, Posicao destino) { Peca p = tabuleiro.RetiraPeca(origem); p.IncrementaQtdMovimento(); Peca pecaCapturada = tabuleiro.RetiraPeca(destino); if (pecaCapturada != null) { pecasCapturadas.Add(pecaCapturada); } tabuleiro.ColocaPeca(p, destino); return(pecaCapturada); }
public Peca ExecutaMovimento(Posicao origem, Posicao destino) { Peca p = Tab.RetirarPeca(origem); p.IncrementaQtdMovimento(); Peca pecaCapturada = Tab.RetirarPeca(destino); Tab.colocarPeca(p, destino); if (pecaCapturada != null) { capturadas.Add(pecaCapturada); } // #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(origemT); t.IncrementaQtdMovimento(); Tab.colocarPeca(t, destinoT); } // #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(destino.Linha, destino.Coluna - 1); Peca t = Tab.RetirarPeca(origemT); t.IncrementaQtdMovimento(); Tab.colocarPeca(t, destinoT); } return(pecaCapturada); }