public void RealizaJogada(Posicao origem, Posicao destino) { Peca pCapturada = ExecutaMovimeto(origem, destino); Peca p = t.Peca(destino); // #Jogada Especial Promoção if (p is Peao) { if ((p.Cor == Cor.Branca && destino.Linha == 0) || (p.Cor == Cor.Preta && destino.Linha == 7)) { p = t.RemovePeca(destino); Pecas.Remove(p); Peca rainha = new Rainha(t, p.Cor); t.AddPeca(rainha, destino); Pecas.Add(rainha); } } if (EstaEmCheque(JogadorAtual)) { DesfazerMovimento(origem, destino, pCapturada); throw new TabuleiroException("Você não pode se colocar em xeque!"); } if (EstaEmCheque(Adversaria(JogadorAtual))) { Xeque = true; } else { Xeque = false; } if (TesteXequeMate(Adversaria(JogadorAtual))) { Terminada = true; } else { turno++; MudaJogador(); } // #Jogada Especial En Passant if (p is Peao && (destino.Linha == origem.Linha - 2 || destino.Linha == origem.Linha + 2)) { VulneravelEnPassant = p; } else { VulneravelEnPassant = null; } }
public void RealizaJogada(Posicao origem, Posicao destino) { Peca pecaCapturada = ExecutaMovimento(origem, destino); if (EstaEmXeque(JogadorAtual)) { DesfazMovimento(origem, destino, pecaCapturada); throw new TabuleiroException("Você nao pode se colocar em Xeque!"); } Peca p = tab.peca(destino); //#Combo Promocao de Peao if (p is Peao) { if (p.cor == Cor.Branca && destino.Linha == 0 || p.cor == Cor.Preta && destino.Linha == 7) { p = tab.RetiraPeca(destino); pecas.Remove(p); Peca rainha = new Rainha(tab, p.cor); tab.ColocarPeca(rainha, destino); pecas.Add(rainha); } } if (EstaEmXeque(Adversaria(JogadorAtual))) { Xeque = true; } else { Xeque = false; } if (TesteXequeMate(Adversaria(JogadorAtual))) { Terminada = true; } else { Turno++; MudaJogador(); } //#Combo En Passant if (p is Peao && (destino.Linha == origem.Linha - 2 || destino.Linha == origem.Linha + 2)) { vulneravelEnPassant = p; } else { vulneravelEnPassant = null; } }
public void RealizaJogada(Posicao origem, Posicao destino) { Peca PecaCap = ExecutarMovimento(origem, destino); if (EstaEmXeque(JogadorAtual)) { DesfazMovimento(origem, destino, PecaCap); throw new TabuleiroException("Você esta em xeque"); } Peca p = Tab.Peca(destino); //Promoção if (p is Peao) { if ((p.Cor == Cor.branca && destino.Linha == 0) || (p.Cor == Cor.preto && destino.Linha == 7)) { p = Tab.RetirarPeca(destino); pecas.Remove(p); Peca Rainha = new Rainha(Tab, p.Cor); Tab.ColocarPeca(Rainha, destino); pecas.Add(Rainha); } } if (EstaEmXeque(Adversaria(JogadorAtual))) { Xeque = true; } else { Xeque = false; } if (TesteXequeMate(Adversaria(JogadorAtual))) { Terminada = true; } else { Turno++; MudaJogador(); } Peca p = Tab.Peca(destino); //Jogada EnPassant if (p is Peao && (destino.Linha == origem.Linha - 2 || destino.Linha == origem.Linha + 2)) { VulneravelEnPassant = p; } else { VulneravelEnPassant = null; } }
public void RealizaJogada(Posicao origem, Posicao destino) { Peca capturada = ExecutaMovimento(origem, destino); if (EstaEmCheque(JogadorAtual)) { DesfazMovimento(origem, destino, capturada); throw new TabuleiroException($"Você não pode se por em cheque!!!"); } Peca p = Tab.GetPeca(destino); //#jogadaespcial promocao if (p is Peao) { if ((p.Cor == Cor.Branca && destino.Linha == 0) || (p.Cor == Cor.Preta && destino.Linha == 7)) { p = Tab.RemovePeca(destino); Pecas.Remove(p); Peca rainha = new Rainha(p.Cor, Tab); Tab.PutPeca(rainha, destino); Pecas.Add(rainha); } } if (EstaEmCheque(Adversario(JogadorAtual))) { Xeque = true; } else { Xeque = false; } if (TesteXequemate(Adversario(JogadorAtual))) { Terminada = true; } else { Turno++; MudaJogador(); } // #jogadaespecial en passant if (p is Peao && (destino.Linha == origem.Linha - 2 || destino.Linha == origem.Linha + 2)) { VuneravelEnPassant = p; } else { VuneravelEnPassant = null; } }
public void RealizaJogada(Posicao origem, Posicao destino) { Peca pecaCapturada = ExecutaMovimento(origem, destino); if (estaEmCheque(jogadorAtual)) { desfazMovimento(origem, destino, pecaCapturada); throw new TabuleiroException("Voce nao pode se colocar em cheque!"); } Peca p = tab.peca(destino); //#jogadaespecial promocao if (p is Peao) { if ((p.Cor == Cor.Branca && destino.Linha == 0) || p.Cor == Cor.Preta && destino.Linha == 7) { p = tab.retirarPeca(destino); pecas.Remove(p); Peca dama = new Rainha(p.Cor, tab); tab.colocarPeca(dama, destino); pecas.Add(dama); } } if (estaEmCheque(adversaria(jogadorAtual))) { xeque = true; } else { xeque = false; } if (estaEmChequeMate(adversaria(jogadorAtual))) { partidaTerminada = true; } else { turno++; MudaJogador(); } //#jogadaespecial En Passant if (p is Peao && (destino.Linha == origem.Linha - 2 || destino.Linha == origem.Linha + 2)) { vulneravelEnPassant = p; } else { vulneravelEnPassant = null; } }
public void realizaJogada(Posicao origem, Posicao destino) { Peca pecaCapturada = executaMovimento(origem, destino); if (estaEmXeque(jogadorAtual)) { desfazMovimento(origem, destino, pecaCapturada); throw new TabuleiroException("Você não pode se colocar em xeque!"); } Peca p = tab.peca(destino); // #jogadaEspecial promocao if (p is Peao) { if ((p.cor == Cor.Branca && destino.linha == 0) || (p.cor == Cor.Preta && destino.linha == 7)) { p = tab.retirarPeca(destino); pecas.Remove(p); Peca dama = new Rainha(tab, p.cor); tab.colocarPeca(dama, destino); pecas.Add(dama); } } if (estaEmXeque(adversaria(jogadorAtual))) { xeque = true; } else { xeque = false; } if (testeXequemate(adversaria(jogadorAtual))) { terminada = true; } else { turno++; mudaJogador(); } //jogadaespecial en passant if (p is Peao && (destino.linha == origem.linha - 2 || destino.linha == origem.linha + 2)) { vulneravelEnPassant = p; } else { vulneravelEnPassant = null; } }
public void realizaJogada(Posicao posOrigem, Posicao posDestino) { Peca capturda = executarMovimento(posOrigem, posDestino); if (estaEmXeque(jogadorAtual)) { desfazMovimento(posOrigem, posDestino, capturda); throw new TabuleiroException("Você não se pode colocar em cheque!"); } Peca p = this.tabuleiro.getPeca(posDestino); // #jogadaespecial promocao if (p is Peao) { if ((p.cor == Cor.Vermelha && posDestino.linha == 0) || (p.cor == Cor.Preta && posDestino.linha == 7)) { p = tabuleiro.removePeca(posDestino); pecas.Remove(p); //usuario poderia escolher qualquer peça...mas vai ficar só sendo rainha Peca dama = new Rainha(tabuleiro, p.cor); tabuleiro.addPeca(dama, posDestino); pecas.Add(dama); } } this.xeque = estaEmXeque(corAdversaria(jogadorAtual)); if (estaEmXequeMate(corAdversaria(jogadorAtual))) { this.terminada = true; } else { turno++; mudaJogador(); } if (p is Peao && (posDestino.linha == posOrigem.linha - 2 || posDestino.linha == posOrigem.linha + 2)) { vulneravelEnPassant = p; } else { vulneravelEnPassant = null; } }