public Peca ExecutaMovimento(Posicao origem, Posicao destino) { Peca p = Tab.RemovePeca(origem); p.IncrementarQtdMovimento(); Peca pecaCapturada = Tab.RemovePeca(destino); Tab.PutPeca(p, destino); if (pecaCapturada != null) { Capturadas.Add(pecaCapturada); } //#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(origemTorre); torreRoque.IncrementarQtdMovimento(); Tab.PutPeca(torreRoque, destinoTorre); } //#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(origemTorre); torreRoque.IncrementarQtdMovimento(); Tab.PutPeca(torreRoque, 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 = Tab.RemovePeca(posicaoPeao); Capturadas.Add(pecaCapturada); } } return(pecaCapturada); }
public Peca executaMovimento(Posicao origem, Posicao destino) { Peca p = Tab.retirarPeca(origem); p.incrementarQteMovimentos(); 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(origem.Linha, origem.Coluna + 1); Peca T = Tab.retirarPeca(origemT); T.incrementarQteMovimentos(); 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(origem.Linha, origem.Coluna - 1); Peca T = Tab.retirarPeca(origemT); T.incrementarQteMovimentos(); Tab.colocarPeca(T, destinoT); } //# jogada especial 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.retirarPeca(posP); Capturadas.Add(pecaCapturada); } } return(pecaCapturada); }
public Peca ExecutaMovimento(Posicao origem, Posicao destino) { Peca peca = Tabuleiro.RetirarPeca(origem); peca.IncrementarMovimentos(); Peca pecaCapturada = Tabuleiro.RetirarPeca(destino); Tabuleiro.ColocarPeca(peca, destino); if (pecaCapturada != null) { Capturadas.Add(pecaCapturada); } // #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(origemTorre); torre.IncrementarMovimentos(); Tabuleiro.ColocarPeca(torre, destinoTorre); } // #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(origemTorre); torre.IncrementarMovimentos(); Tabuleiro.ColocarPeca(torre, destinoTorre); } // #jogadaespecial en passant if (peca is Peao) { if (origem.Coluna != destino.Coluna && pecaCapturada == null) { Posicao posicaoPeao; if (peca.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); }
public Peca ExecutaMovimento(Posicao origem, Posicao destino) { Peca p = Tab.retirarPeca(origem); p.IncrementMoviment(); Peca pecaCapturada = Tab.retirarPeca(destino); Tab.ColocarPeca(p, destino); if (pecaCapturada != null) { Capturadas.Add(pecaCapturada); } //#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.retirarPeca(origemTorre); torre.IncrementMoviment(); Tab.ColocarPeca(torre, destinoTorre); } //#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.retirarPeca(origemTorre); torre.IncrementMoviment(); Tab.ColocarPeca(torre, destinoTorre); } //#JogadaEspecial EnPassant if (p is Pawn) { if (origem.Coluna != p.Position.Coluna && pecaCapturada == null) { Posicao posP; if (p.Color == Cor.White) { posP = new Posicao(destino.Linha + 1, destino.Coluna); } else { posP = new Posicao(destino.Linha - 1, destino.Coluna); } pecaCapturada = Tab.retirarPeca(posP); Capturadas.Add(pecaCapturada); } } return(pecaCapturada); }
public Peca ExecutaMovimento(Posicao origem, Posicao destino) { Peca p = Tab.RetiraPeca(origem); p.IncrementarQuantMovimentos(); Peca PecaCapturada = Tab.RetiraPeca(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.RetiraPeca(origemT); T.IncrementarQuantMovimentos(); 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.RetiraPeca(origemT); T.IncrementarQuantMovimentos(); Tab.ColocarPeca(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.RetiraPeca(posP); Capturadas.Add(PecaCapturada); } } return(PecaCapturada); }
public Peca ExecutarMovimento(Posicao origem, Posicao destino) { Peca p = Tab.RetirarPeca(origem); p.IncrementarQteMovimento(); Peca pecaCapturada = Tab.RetirarPeca(destino); Tab.ColocarPeca(p, destino); if (pecaCapturada != null) { Capturadas.Add(pecaCapturada); } return(pecaCapturada); }