public void ColocarNovaPeca(char coluna, int linha, Peca peca) { Posicao posicao = new PosicaoXadrez(coluna, linha).ToPosicao(); Tabuleiro.ColocarPeca(peca, posicao); _pecas.Add(peca); }
public void ExecutaMovimento(Posicao origem, Posicao destino) { Peca p = Tabuleiro.RetirarPeca(origem); p.IncrementarQtdeMovimentos(); Peca pecaCapturada = Tabuleiro.RetirarPeca(destino); Tabuleiro.ColocarPeca(p, destino); }
public void RealizaJogada(Posicao origem, Posicao destino) { Peca pecaCapturada = ExecutaMovimento(origem, destino); if (EstaEmCheck(JogadorAtual)) { DesfazMovimento(origem, destino, pecaCapturada); throw new TabuleiroException("Você não pode se colocar em check!"); } Peca p = Tabuleiro.PegaPeca(destino); // #jogadaespecial promocao if (p is Peao) { if ((p.Cor == Cor.Branca && destino.Linha == 0) || (p.Cor == Cor.Preta && destino.Linha == 7)) { p = Tabuleiro.RetirarPeca(destino); _pecas.Remove(p); Peca promo = EscolhePromo(Tabuleiro, p.Cor); if (promo != null) { Tabuleiro.ColocarPeca(promo, destino); _pecas.Add(promo); } } } if (EstaEmCheck(Adversaria(JogadorAtual))) { Check = true; } else { Check = false; } if (TesteCheckMate(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; } }
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 Peca ExecutaMovimento(Posicao origem, Posicao destino) { Peca peca = Tabuleiro.RetirarPeca(origem); peca.IncrementarMovimento(); Peca pecaCapturada = Tabuleiro.RetirarPeca(destino); Tabuleiro.ColocarPeca(peca, destino); if (pecaCapturada != null) { PecasCapturadas.Add(pecaCapturada); } // 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.IncrementarMovimento(); Tabuleiro.ColocarPeca(torre, destinoTorre); } // 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.IncrementarMovimento(); Tabuleiro.ColocarPeca(torre, destinoTorre); } 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); PecasCapturadas.Add(pecaCapturada); } } return(pecaCapturada); }
public Peca ExecutaMovimento(Posicao origem, Posicao destino) { Peca p = Tabuleiro.RetirarPeca(origem); p.IncrementaQtMovimentos(); Peca pecaCapturada = Tabuleiro.RetirarPeca(destino); Tabuleiro.ColocarPeca(p, destino); if (pecaCapturada != null) { _capturadas.Add(pecaCapturada); } // #jogadaespecial 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 t = Tabuleiro.RetirarPeca(origemTorre); t.IncrementaQtMovimentos(); Tabuleiro.ColocarPeca(t, destinoTorre); } // #jogadaespecial 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 t = Tabuleiro.RetirarPeca(origemTorre); t.IncrementaQtMovimentos(); Tabuleiro.ColocarPeca(t, destinoTorre); } // #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 = Tabuleiro.RetirarPeca(posP); _capturadas.Add(pecaCapturada); } } return(pecaCapturada); }
public void RealizaJogada(Posicao origem, Posicao destino) { Peca pecaCapturada = ExecutaMovimento(origem, destino); if (ValidaPosicaoXeque(CorPecaJogador)) { DesfazerMovimento(origem, destino, pecaCapturada); throw new TabuleiroException("Não é possível colocar-se em posição de xeque!"); } Peca pecaMovida = Tabuleiro.Peca(destino); // promocao if (pecaMovida is Peao) { if ((pecaMovida.Cor == Cor.Branca && destino.Linha == 0) || (pecaMovida.Cor == Cor.Preta && destino.Linha == 7)) { pecaMovida = Tabuleiro.RetirarPeca(destino); PecasJogo.Remove(pecaMovida); Peca dama = new Dama(Tabuleiro, pecaMovida.Cor); Tabuleiro.ColocarPeca(dama, destino); PecasJogo.Add(dama); } } if (ValidaPosicaoXeque(IdentificarCorAdversaria(CorPecaJogador))) { Xeque = true; } else { Xeque = false; } if (ValidaXequeMate(IdentificarCorAdversaria(CorPecaJogador))) { Terminada = true; } else { Turno++; MudaCorPeca(); } // en passant if (pecaMovida is Peao && (destino.Linha == origem.Linha - 2 || destino.Linha == origem.Linha + 2)) { PecaEnPassant = pecaMovida; } else { PecaEnPassant = null; } }
public void RealizaJogada(Posicao origem, Posicao destino) { Peca pecaCapiturada = ExecutarMovimento(origem, destino); if (EstaEmXeque(JogadorAtual)) { DesfazMovimento(origem, destino, pecaCapiturada); throw new TabuleiroException("Você não pode se colocar em xeque!"); } Peca p = Tabuleiro.Peca(destino); // #jogadaEspecial Promocao if (p is Peao) { if ((p.Cor == Cor.Branca && destino.Linha == 0) || (p.Cor == Cor.Preta && destino.Linha == 7)) { p = Tabuleiro.RetirarPeca(destino); Pecas.Remove(p); Peca dama = new Dama(Tabuleiro, p.Cor); Tabuleiro.ColocarPeca(dama, destino); Pecas.Add(dama); } } if (EstaEmXeque(Adversaria(JogadorAtual))) { Xeque = true; } else { Xeque = false; } if (TesteXequeMate(Adversaria(JogadorAtual))) { Teminada = true; } else { Turno++; MudarJogador(); } // #JogadaEspecial En Passant if (p is Peao && (destino.Linha == origem.Linha - 2 || destino.Linha == origem.Linha + 2)) { VulneravelEnPassant = p; } else { VulneravelEnPassant = null; } }
public Peca ExecutarMovimento(Posicao origem, Posicao destino) { Peca p = Tabuleiro.RetirarPeca(origem); p.IncrementarQtemovimentos(); Peca pecaCapiturada = Tabuleiro.RetirarPeca(destino); Tabuleiro.ColocarPeca(p, destino); if (pecaCapiturada != null) { Capituradas.Add(pecaCapiturada); } // 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 = Tabuleiro.RetirarPeca(origemT); T.IncrementarQtemovimentos(); Tabuleiro.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 = Tabuleiro.RetirarPeca(origemT); T.IncrementarQtemovimentos(); Tabuleiro.ColocarPeca(T, destinoT); } // jogadaEspecial En Passant if (p is Peao) { if (origem.Coluna != destino.Coluna && pecaCapiturada == 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); } pecaCapiturada = Tabuleiro.RetirarPeca(posP); Capituradas.Add(pecaCapiturada); } } return(pecaCapiturada); }
public Peca ExecutaMovimento(Posicao origem, Posicao destino) { Peca p = Tabuleiro.RetirarPeca(origem); p.IncrementarQtdMovimento(); Peca pecaCapturada = Tabuleiro.RetirarPeca(destino); Tabuleiro.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 torre = Tabuleiro.RetirarPeca(origemT); torre.IncrementarQtdMovimento(); Tabuleiro.ColocarPeca(torre, 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 torre = Tabuleiro.RetirarPeca(origemT); torre.IncrementarQtdMovimento(); Tabuleiro.ColocarPeca(torre, destinoT); } //#jogada especial enpassant 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 = Tabuleiro.RetirarPeca(posP); Capturadas.Add(pecaCapturada); } } return(pecaCapturada); }
public void DesfazMovimento(Posicao origem, Posicao destino, Peca pecaCapturada) { Peca p = Tabuleiro.RetirarPeca(destino); p.DecrementarQtMovimentos(); if (pecaCapturada != null) { Tabuleiro.ColocarPeca(pecaCapturada, destino); _capturadas.Remove(pecaCapturada); } Tabuleiro.ColocarPeca(p, origem); // #jogadaespecial 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 t = Tabuleiro.RetirarPeca(destinoTorre); t.DecrementarQtMovimentos(); Tabuleiro.ColocarPeca(t, origemTorre); } // #jogadaespecial 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 t = Tabuleiro.RetirarPeca(destinoTorre); t.DecrementarQtMovimentos(); Tabuleiro.ColocarPeca(t, origemTorre); } // #jogadaespecial En Pessant if (p is Peao) { if (origem.Coluna != destino.Coluna && pecaCapturada == VulneravelEnPassant) { Peca peao = Tabuleiro.RetirarPeca(destino); Posicao posPeao; if (p.Cor == Cor.Branca) { posPeao = new Posicao(3, destino.Coluna); } else { posPeao = new Posicao(4, destino.Coluna); } Tabuleiro.ColocarPeca(peao, posPeao); } } }
public void DesfazMovimento(Posicao origem, Posicao destino, Peca pecaCapturada) { Peca p = Tabuleiro.RetirarPeca(destino); p.DecrementarQtdMovimento(); if (pecaCapturada != null) { Tabuleiro.ColocarPeca(pecaCapturada, destino); Capturadas.Remove(pecaCapturada); } Tabuleiro.ColocarPeca(p, origem); //#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 torre = Tabuleiro.RetirarPeca(destinoT); torre.DecrementarQtdMovimento(); Tabuleiro.ColocarPeca(torre, origemT); } //#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 torre = Tabuleiro.RetirarPeca(destinoT); torre.DecrementarQtdMovimento(); Tabuleiro.ColocarPeca(torre, origemT); } //#jogada especial enpassant if (p is Peao) { if (origem.Coluna != destino.Coluna && pecaCapturada == VulneravelEnPassant) { Peca peao = Tabuleiro.RetirarPeca(destino); Posicao posP; if (p.Cor == Cor.Branca) { posP = new Posicao(3, destino.Coluna); } else { posP = new Posicao(4, destino.Coluna); } Tabuleiro.ColocarPeca(peao, posP); } } }
public void RealizaJogada(Posicao origem, Posicao destino) { Peca pecaCapturada = ExecutaMovimento(origem, destino); if (OReiEstaEmXeque(JogadorAtual)) { DesfazerMovimento(origem, destino, pecaCapturada); throw new TabuleiroException("Você não pode se colocar em xeque!"); } Peca p = Tabuleiro.Peca(destino); //Jogada Especial Promoção if (p is Peao) { bool PeaoBrancoEstaNaUltimaLinha = (p.Cor == Cor.Branca) && (destino.Linha == 0); bool PeaoPretoEstaNaUltimaLinha = (p.Cor == Cor.Preta) && (destino.Linha == 7); bool EhPromocao = PeaoBrancoEstaNaUltimaLinha || PeaoPretoEstaNaUltimaLinha; if (EhPromocao) { p = Tabuleiro.RetirarPeca(destino); _pecas.Remove(p); Peca dama = new Dama(Tabuleiro, p.Cor); Tabuleiro.ColocarPeca(dama, destino); _pecas.Add(dama); } } xeque = OReiEstaEmXeque(CorAdversaria(JogadorAtual)); if (EhXequeMate(CorAdversaria(JogadorAtual))) { Terminada = true; } else { Turno++; MudaJogador(); } //Jogada Especial EnPassant bool EhOPrimeiroMovimento = (destino.Linha == origem.Linha - 2) || (destino.Linha == origem.Linha + 2); if ((p is Peao) && EhOPrimeiroMovimento) { EnPassant = p; } else { EnPassant = null; } }
private void DesfazerMovimento(Posicao origem, Posicao destino, Peca pecaCapturada) { Peca p = Tabuleiro.RetirarPeca(destino); p.DecrementarQtdMovimentos(); if (pecaCapturada != null) { Tabuleiro.ColocarPeca(pecaCapturada, destino); _capturadas.Remove(pecaCapturada); } Tabuleiro.ColocarPeca(p, origem); //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(destinoTorre); torre.DecrementarQtdMovimentos(); Tabuleiro.ColocarPeca(torre, origemTorre); } //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(destinoTorre); torre.DecrementarQtdMovimentos(); Tabuleiro.ColocarPeca(torre, origemTorre); } //Jogada Especial En Passant if (p is Peao) { if ((origem.Coluna != destino.Coluna) && (pecaCapturada == EnPassant)) { Peca peao = Tabuleiro.RetirarPeca(destino); Posicao posicaoPeao; if (p.Cor == Cor.Branca) { posicaoPeao = new Posicao(3, destino.Coluna); } else { posicaoPeao = new Posicao(4, destino.Coluna); } Tabuleiro.ColocarPeca(peao, posicaoPeao); } } }
public void DesfazerMovimento(Posicao origem, Posicao destino, Peca pecaCapturada) { Peca pecaDeOrigem = Tabuleiro.RetirarPeca(destino); Tabuleiro.ColocarPeca(pecaDeOrigem, origem); pecaDeOrigem.DecrementarMovimento(); if (pecaCapturada != null) { Tabuleiro.ColocarPeca(pecaCapturada, destino); _pecasCapturadas.Remove(pecaCapturada); } }
public void DesfazMovimento(Posicao origem, Posicao destino, Peca pecaCapiturada) { Peca peca = Tabuleiro.RetirarPeca(destino); peca.DecrementarQtemovimentos(); if (pecaCapiturada != null) { Tabuleiro.ColocarPeca(pecaCapiturada, destino); Capituradas.Remove(pecaCapiturada); } Tabuleiro.ColocarPeca(peca, origem); // jogadaEspecial Roque Pequeno if (peca 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 = Tabuleiro.RetirarPeca(destinoT); T.DecrementarQtemovimentos(); Tabuleiro.ColocarPeca(T, origemT); } // jogadaEspecial Roque Grande if (peca 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 = Tabuleiro.RetirarPeca(destinoT); T.DecrementarQtemovimentos(); Tabuleiro.ColocarPeca(T, origemT); } // #jogadaEspecial En Passant if (peca is Peao) { if (origem.Coluna != destino.Coluna && pecaCapiturada == VulneravelEnPassant) { Peca peao = Tabuleiro.RetirarPeca(destino); Posicao posP; if (peca.Cor == Cor.Branca) { posP = new Posicao(3, destino.Coluna); } else { posP = new Posicao(4, destino.Coluna); } Tabuleiro.ColocarPeca(peao, posP); } } }
public void DesfazerMoviemnto(Posicao origem, Posicao destino, Peca pecaCapturada) { Peca peca = Tabuleiro.RetirarPeca(destino); peca.DecremetarMovimentos(); if (pecaCapturada != null) { Tabuleiro.ColocarPeca(pecaCapturada, destino); PecasCapturadas.Remove(pecaCapturada); } Tabuleiro.ColocarPeca(peca, origem); //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(destinoTorre); torre.DecremetarMovimentos(); Tabuleiro.ColocarPeca(torre, origemTorre); } //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(destinoTorre); torre.DecremetarMovimentos(); Tabuleiro.ColocarPeca(torre, origemTorre); } //en passant if (peca is Peao) { if (origem.Coluna != destino.Coluna && pecaCapturada == VulneravelEmPassant) { Peca pecaPeao = Tabuleiro.RetirarPeca(destino); Posicao pos; if (peca.Cor == Cor.Branca) { pos = new Posicao(3, destino.Coluna); } else { pos = new Posicao(4, destino.Coluna); } Tabuleiro.ColocarPeca(pecaPeao, pos); } } }
public void DesfazMovimento(Posicao origem, Posicao destino, Peca pecaCapturada) { Peca pecaRetirada = Tabuleiro.RetirarPeca(destino); pecaRetirada.AlteraQuantidadeDeMovimento(eIncremento: false); if (pecaCapturada != null) { Tabuleiro.ColocarPeca(pecaCapturada, destino); Captudaras.Remove(pecaCapturada); } Tabuleiro.ColocarPeca(pecaRetirada, origem); }
public Peca ExecutaMovimento(Posicao origem, Posicao destino) { Peca pecaRetirada = Tabuleiro.RetirarPeca(origem); pecaRetirada.AlteraQuantidadeDeMovimento(eIncremento: true); Peca pecaCapturada = Tabuleiro.RetirarPeca(destino); Tabuleiro.ColocarPeca(pecaRetirada, destino); if (pecaCapturada != null) { Captudaras.Add(pecaCapturada); } return(pecaCapturada); }
private void ColocarPecas() { Tabuleiro.ColocarPeca(new Torre(Cor.Branca, Tabuleiro), new PosicaoXadrez('c', 1).ToPosicao()); Tabuleiro.ColocarPeca(new Torre(Cor.Branca, Tabuleiro), new PosicaoXadrez('c', 2).ToPosicao()); Tabuleiro.ColocarPeca(new Torre(Cor.Branca, Tabuleiro), new PosicaoXadrez('d', 2).ToPosicao()); Tabuleiro.ColocarPeca(new Torre(Cor.Branca, Tabuleiro), new PosicaoXadrez('e', 2).ToPosicao()); Tabuleiro.ColocarPeca(new Torre(Cor.Branca, Tabuleiro), new PosicaoXadrez('e', 1).ToPosicao()); Tabuleiro.ColocarPeca(new Rei(Cor.Branca, Tabuleiro), new PosicaoXadrez('d', 1).ToPosicao()); Tabuleiro.ColocarPeca(new Torre(Cor.Preta, Tabuleiro), new PosicaoXadrez('c', 7).ToPosicao()); Tabuleiro.ColocarPeca(new Torre(Cor.Preta, Tabuleiro), new PosicaoXadrez('c', 8).ToPosicao()); Tabuleiro.ColocarPeca(new Torre(Cor.Preta, Tabuleiro), new PosicaoXadrez('d', 7).ToPosicao()); Tabuleiro.ColocarPeca(new Torre(Cor.Preta, Tabuleiro), new PosicaoXadrez('e', 7).ToPosicao()); Tabuleiro.ColocarPeca(new Torre(Cor.Preta, Tabuleiro), new PosicaoXadrez('e', 8).ToPosicao()); Tabuleiro.ColocarPeca(new Rei(Cor.Preta, Tabuleiro), new PosicaoXadrez('d', 8).ToPosicao()); }
public Peca ExecutarMovimento(Posicao origem, Posicao destino) { Peca peca = Tabuleiro.RetirarPeca(origem); peca.IncrementarMovimento(); Peca pecaCapturada = Tabuleiro.RetirarPeca(destino); if (pecaCapturada != null) { _pecasCapturadas.Add(pecaCapturada); } Tabuleiro.ColocarPeca(peca, destino); return(pecaCapturada); }
public void RelizaJogada(Posicao origem, Posicao destino) { Peca pecaCapturada = ExecutaMovimento(origem, destino); if (EstahEmXeque(JogadorAtual)) { DesfazerMoviemnto(origem, destino, pecaCapturada); throw new TabuleiroException("Você não pode se colocar em xeque!"); } PartidaEmXeque = EstahEmXeque(Adversaria(JogadorAtual)); Peca peca = Tabuleiro.Peca(destino); 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 dama = new Rainha(Tabuleiro, peca.Cor); Tabuleiro.ColocarPeca(dama, destino); Pecas.Add(dama); } } if (TestarXequeMate(Adversaria(JogadorAtual))) { PartidaTerminada = true; } else { Turno++; MudarJogador(); } //teste en passant VulneravelEmPassant = (peca is Peao && ((destino.Linha == origem.Linha - 2) || (destino.Linha == origem.Linha + 2))) ? peca : null; }
public void ColocarNovaPeca(char coluna, int linha, Peca peca) { Tabuleiro.ColocarPeca(peca, new PosicaoXadrez(coluna, linha).ConverterParaPosicao()); _pecasDaPartida.Add(peca); }
public void ColocarNovaPeca(char coluna, int linha, Peca peca) { Tabuleiro.ColocarPeca(peca, new PosicaoXadrez(coluna, linha).ToPosicao()); Pecas.Add(peca); }
private void ColocarPecas() { Tabuleiro.ColocarPeca(new Torre(Tabuleiro, Cor.Rosa), new PosicaoXadrez('C', 1).ToPosicao()); Tabuleiro.ColocarPeca(new Torre(Tabuleiro, Cor.Rosa), new PosicaoXadrez('C', 2).ToPosicao()); Tabuleiro.ColocarPeca(new Rei(Tabuleiro, Cor.Azul), new PosicaoXadrez('C', 3).ToPosicao()); }