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); // promoção 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 Dama(Tab, p.Cor, _spriteSheet, _atlas, PieceScaleRatio); Tab.ColocarPeca(dama, destino); Pecas.Add(dama); } } if (EstaEmXeque(Adversaria(JogadorAtual))) { Xeque = true; } else { Xeque = false; } if (TexteXequeMate(Adversaria(JogadorAtual))) { Terminada = true; } else { this.Turno++; MudaJogador(); } // #jogada especial en passant if (p is Peao && (destino.Linha == origem.Linha - 2 || destino.Linha == origem.Linha + 2)) { VulveravelEnPassant = p; } else { VulveravelEnPassant = null; } }
public async Task EliminarPeca(Peca peca) { Sincronizando = true; await service.Remove(peca.PecaID); await pecasDAL.DeleteAsync(peca); Pecas.Remove(peca); Sincronizando = false; }
public void RealizaJogada(Posicao origem, Posicao destino) { Peca pecaCapturada = ExecutaMovimento(origem, destino); if (EstarEmXeque(JogadorAtual)) { DesfazMovimento(origem, destino, pecaCapturada); throw new TabuleiroException("Você não pode se colocar em Xeque!"); } Peca peca = Tabuleiro.Peca(destino); // #jogadaespecial promocao if (peca is Peao) { if (peca.Cor == Cor.Branca && destino.Linha == 0 || peca.Cor == Cor.Preta && destino.Linha == 7) { peca = Tabuleiro.RetirarPeca(destino); Pecas.Remove(peca); Peca rainha = new Rainha(Tabuleiro, peca.Cor); Tabuleiro.ColocarPeca(rainha, destino); Pecas.Add(rainha); } } if (EstarEmXeque(Adversaria(JogadorAtual))) { Xeque = true; } else { Xeque = false; } if (TesteXequeMate(Adversaria(JogadorAtual))) { Terminada = true; } else { Turno++; MudaJogador(); } // #jogadaespecial en passant if (peca is Peao && destino.Linha == origem.Linha - 2 || destino.Linha == origem.Linha + 2) { VulneravelEnPassant = peca; } 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 Dama(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 origem, Posicao destino) { Peca pecaCapturada = ExecutaMovimento(origem, destino); if (EstaEmXeque(JogadorAtual)) { DesfazMovimento(origem, destino, pecaCapturada); throw new TabulerioException("Voçe não pode se colocar em Xeque."); } Peca p = Tab.GetPeca(destino); // #jogadaespecial promocao if (p is Peao) { if ((p.Cor == Cor.Branca && destino.Linha == 0) || (p.Cor == Cor.Preta && destino.Linha == 7)) { p = Tab.RemoverPeca(destino); Pecas.Remove(p); Peca dama = new Dama(Tab, p.Cor); Tab.SetPeca(dama, destino); Pecas.Add(dama); } } if (EstaEmXeque(Adversario(JogadorAtual))) { Xeque = true; } else { Xeque = false; } if (XequeMate(Adversario(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 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); Peca p = Tab.PegaPeca(destino); if (EstaXeque(JogadorAtual)) { DesfazMovimento(origem, destino, pecaCapturada); throw new GameBoardException("Você não pode se colocar em xeque!"); } //#JogadaEspecial Promocao if (p is Pawn) { if ((p.Color == Cor.White && destino.Linha == 0) || (p.Color == Cor.Black && destino.Linha == 7)) { p = Tab.retirarPeca(destino); Pecas.Remove(p); Peca queen = new Queen(Tab, p.Color); Tab.ColocarPeca(queen, destino); Pecas.Add(queen); } } if (EstaXeque(Adversaria(JogadorAtual))) { Xeque = true; } else { Xeque = false; } if (TesteXequeMate(Adversaria(JogadorAtual))) { Terminada = true; } else { Turno++; MudaJogador(); } //#JogadaEspecial EnPassant if (p is Pawn && (origem.Linha + 2 == destino.Linha || origem.Linha - 2 == destino.Linha)) { VuneravelEnPassant = p; } else { VuneravelEnPassant = null; } }
public void RealizaJogada(Posicao origem, Posicao destino) { Peca pecaCapturada = ExecutaMovimento(origem, destino); Peca p = Tab.Peca(destino); // Jogada epsecial Promoção 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 Dama(Tab, p.Cor); Tab.ColocarPeca(dama, destino); } } if (EstaEmXeque(JogadorAtual)) { DesfazerMovimento(origem, destino, pecaCapturada); throw new TabuleiroException("Você não pode se colocar em xeque!"); } if (EstaEmXeque(Inimigo(JogadorAtual))) { Xeque = true; } else { Xeque = false; } if (TesteXequeMate(Inimigo(JogadorAtual))) { Terminada = true; } else { Turno++; MudaJogador(); } // Jogada especial en passant if (p is Peao && destino.Linha == origem.Linha - 2 || destino.Linha == origem.Linha + 2) { VuneravelEnPassant = p; } }