public Peca ExecutaMovimento(Posicao origem, Posicao destino) { Peca p = Tab.RetirarPeca(origem); p.IncrementarQtdMovimentos(); Peca pecaCapturada = Tab.RetirarPeca(destino); Tab.ColocarPeca(p, destino); if (pecaCapturada != null) { capturadas.Add(pecaCapturada); } // #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(origemT); t.IncrementarQtdMovimentos(); Tab.ColocarPeca(t, destinoT); } // #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(origemT); t.IncrementarQtdMovimentos(); Tab.ColocarPeca(t, destinoT); } return(pecaCapturada); }
public void ExecutaMovimento(Posicao origem, Posicao destino) { Peca peca = tabuleiro.RetirarPeca(origem); peca.IncrementarQtdMovimentos(); Peca pecaCapturada = tabuleiro.RetirarPeca(destino); tabuleiro.ColocarPeca(peca, destino); }
public void ExecutaMovimento(Posicao origem, Posicao destino) { Peca p = Tab.RetirarPeca(origem); p.IncrementarQtdMovimentos(); Peca pecaCapturada = Tab.RetirarPeca(destino); Tab.ColocarPeca(p, destino); }
public Peca ExecutaMovimento(Posicao origem, Posicao destino) { Peca p = Tab.RemoverPeca(origem); p.IncrementarQtdMovimentos(); Peca pecaCapturada = Tab.RemoverPeca(destino); Tab.SetPeca(p, destino); if (pecaCapturada != null) { Capturadas.Add(pecaCapturada); } // #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.RemoverPeca(origemT); T.IncrementarQtdMovimentos(); Tab.SetPeca(T, destinoT); } // #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.RemoverPeca(origemT); T.IncrementarQtdMovimentos(); Tab.SetPeca(T, destinoT); } // #jogadaespecial en passant if (p is Peao) { if (origem.Coluna != destino.Coluna && pecaCapturada == null) { Posicao posP; if (p.Cor == Cor.Branca) { posP = new Posicao(destino.Linha + 1, destino.Coluna); } else { posP = new Posicao(destino.Linha - 1, destino.Coluna); } pecaCapturada = Tab.RemoverPeca(posP); Capturadas.Add(pecaCapturada); } } return(pecaCapturada); }
private Peca ExecutaMovimento(Posicao origem, Posicao destino) { Peca p = Tabuleiro.RetirarPeca(origem); p.IncrementarQtdMovimentos(); Peca pecaCapturada = Tabuleiro.RetirarPeca(destino); Tabuleiro.ColocarPeca(p, destino); if (pecaCapturada != null) { _capturadas.Add(pecaCapturada); } //#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(origemTorre); torre.IncrementarQtdMovimentos(); Tabuleiro.ColocarPeca(torre, destinoTorre); } //#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(origemTorre); torre.IncrementarQtdMovimentos(); Tabuleiro.ColocarPeca(torre, destinoTorre); } //Jogada Especial En Passant if (p is Peao) { if ((origem.Coluna != destino.Coluna) && (pecaCapturada == null)) { Posicao posicaoPeao; if (p.Cor == Cor.Branca) { posicaoPeao = new Posicao(destino.Linha + 1, destino.Coluna); } else { posicaoPeao = new Posicao(destino.Linha - 1, destino.Coluna); } pecaCapturada = Tabuleiro.RetirarPeca(posicaoPeao); _capturadas.Add(pecaCapturada); } } return(pecaCapturada); }
private void DesfazMovimento(Posicao origem, Posicao destino, Peca pecaCapturada) { Peca p = Tab.RemoverPeca(destino); p.DecrementarQtdMovimentos(); if (pecaCapturada != null) { Tab.SetPeca(pecaCapturada, destino); Capturadas.Remove(pecaCapturada); } Tab.SetPeca(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.RemoverPeca(destinoT); T.IncrementarQtdMovimentos(); Tab.SetPeca(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.RemoverPeca(destinoT); T.IncrementarQtdMovimentos(); Tab.SetPeca(T, origemT); } // #jogadaespecial en passant if (p is Peao) { if (origem.Coluna != destino.Coluna && pecaCapturada == VulneravelEnPassant) { Peca peao = Tab.RemoverPeca(destino); Posicao posP; if (p.Cor == Cor.Branca) { posP = new Posicao(3, destino.Coluna); } else { posP = new Posicao(4, destino.Coluna); } Tab.SetPeca(peao, posP); } } }
public Peca executaMovimento(Posicao origem, Posicao destino) { Peca p = tabuleiro.retirarPeca(origem); p.IncrementarQtdMovimentos(); Peca pecaCapturada = tabuleiro.retirarPeca(destino); tabuleiro.colocarPeca(p, destino); if (pecaCapturada != null) { capturadas.Add(pecaCapturada); } return(pecaCapturada); }
public Peca ExecutaMovimento(Posicao origem, Posicao destino) { Peca p = Tab.RetirarPeca(origem); p.IncrementarQtdMovimentos(); Peca pecaCapturada = Tab.RetirarPeca(destino); Tab.ColocarPeca(p, destino); if (pecaCapturada != null) { Capturadas.Add(pecaCapturada); } return(pecaCapturada); }
public Peca ExecutarMovimento(Posicao origem, Posicao destino) { Peca pecaMovimentada = Tabuleiro.RetirarPeca(origem); pecaMovimentada.IncrementarQtdMovimentos(); Peca pecaCapturada = Tabuleiro.RetirarPeca(destino); Tabuleiro.InserirPeca(pecaMovimentada, destino); if (pecaCapturada != null) { PecasCapturadas.Add(pecaCapturada); } // #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(origemTorre); tempTorre.IncrementarQtdMovimentos(); Tabuleiro.InserirPeca(tempTorre, destinoTorre); } // #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 tempTorreT = Tabuleiro.RetirarPeca(origemTorre); tempTorreT.IncrementarQtdMovimentos(); Tabuleiro.InserirPeca(tempTorreT, destinoTorre); } // #JogadaEspecial En Passant if (pecaMovimentada is Peao) { if (origem.Coluna != destino.Coluna && pecaCapturada == null) { Posicao tempPos; tempPos = (pecaMovimentada.Cor == Cor.branca)? new Posicao(destino.Linha + 1, destino.Coluna): new Posicao(destino.Linha - 1, destino.Coluna); pecaCapturada = Tabuleiro.RetirarPeca(tempPos); PecasCapturadas.Add(pecaCapturada); } } return(pecaCapturada); }