private bool PodeMover(Posicao pos) { Peca p = Tab.Peca(pos); return(p == null || p.Cor != Cor); }
private bool TesteTorreParaRoque(Posicao pos) { Peca p = Tab.Peca(pos); return(p != null && p is Torre && p.Cor == Cor && p.QuantMovimentos == 0); }
private bool existeInimigo(Posicao pos) { Peca p = tab.peca(pos); return(p != null && p.cor != cor); }
public void colocarNovaPeca(char coluna, int linha, Peca peca) { tab.colocarPeca(peca, new PosicaoXadrez(coluna, linha).toPosicao()); pecas.Add(peca); }
public bool podeMover(Posicao pos) { Peca p = Tab.peca(pos); return(p == null || p.Cor != Cor); }
private bool TesteTorreRoque(Posicao pos) { Peca p = Tab.Peca(pos); return p != null && p is Torre && p.Cor == Cor && p.QtdeMovimentos == 0; }
public bool ExisteInimigo(Posicao pos) { Peca p = Tab.Peca(pos); return(p != null && p.Cor != Cor); }
public void Desfazmovimento(Posicao origem, Posicao destino, Peca pecaorigem, Peca pecacapturada) { tab.RetirarPeca(origem); tab.RetirarPeca(destino); tab.ColocarPeca(pecaorigem, origem); tab.ColocarPeca(pecacapturada, pecacapturada.posicao); pecaorigem.diminuirmovimentos(); if (tab.pecas[origem.Linha, origem.Coluna] is Rei && destino.Coluna == origem.Coluna + 2) { Peca Torre = tab.pecas[origem.Linha, origem.Coluna + 1]; Posicao origemtorre = new Posicao(origem.Linha, origem.Coluna + 1); Posicao destinotorre = new Posicao(origem.Linha, origem.Coluna + 3); tab.RetirarPeca(origemtorre); tab.ColocarPeca(Torre, destinotorre); Torre.diminuirmovimentos(); ; } if (tab.pecas[origem.Linha, origem.Coluna] is Rei && destino.Coluna == origem.Coluna - 2) { Peca Torre = tab.pecas[origem.Linha, origem.Coluna - 1]; Posicao origemtorre = new Posicao(origem.Linha, origem.Coluna - 1); Posicao destinotorre = new Posicao(origem.Linha, origem.Coluna - 4); tab.RetirarPeca(origemtorre); tab.ColocarPeca(Torre, destinotorre); Torre.diminuirmovimentos(); } if (pecaorigem is Peao && pecacapturada is Peao && pecacapturada.posicao != null && pecacapturada.posicao != destino) { vulneravelenpassant = pecacapturada; } }
private bool testeTorreRoque(Posicao proxima) { Peca P = tabuleiro.peca(proxima); return(P != null && P is Torre && P.cor == cor && P.QuantMovimentos == 0); }
private bool PodeMover(Posicao pos) { Peca p = Tab.Peca(pos); //pega a posicao da peça return(p == null || p.Cor != Cor); //só vai pode mover quando a casa estiver vazia e a cor da peça for diferente }
//REI - Pode mover 1 unica casa para todas as direçoes private bool podeMover(Posicao proxima) { Peca P = tabuleiro.peca(proxima); return(P == null || P.cor != cor); }
private bool ExisteInimigo(Posicao posicao) { Peca peca = Tabuleiro.ObterPeca(posicao); return(peca != null && peca.Cor != Cor); }
public Peca executamovimento(Posicao origem, Posicao destino) { Peca p; p = tab.peca(origem); tab.RetirarPeca(origem); p.incrementarmovimentos(); Peca pecacapturada = tab.RetirarPeca(destino); tab.ColocarPeca(p, destino); if (pecacapturada != null) { pecacapturada.posicao = destino; } if (tab.pecas[destino.Linha, destino.Coluna] is Peao && (destino.Linha == 0 || destino.Linha == 7)) { Cor coraux = tab.pecas[destino.Linha, destino.Coluna].cor; tab.pecas[destino.Linha, destino.Coluna] = new Dama(tab, coraux); tab.pecas[destino.Linha, destino.Coluna].posicao = destino; } if (p is Peao && destino.Coluna != origem.Coluna && pecacapturada is null) { Posicao poscapturada = new Posicao(origem.Linha, destino.Coluna); pecacapturada = tab.RetirarPeca(poscapturada); pecacapturada.posicao = poscapturada; vulneravelenpassant = null; } if (tab.pecas[destino.Linha, destino.Coluna] 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 = tab.peca(origemtorre); tab.RetirarPeca(origemtorre); tab.ColocarPeca(torre, destinotorre); torre.incrementarmovimentos(); } if (tab.pecas[destino.Linha, destino.Coluna] 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 = tab.peca(origemtorre); tab.RetirarPeca(origemtorre); tab.ColocarPeca(torre, destinotorre); torre.incrementarmovimentos(); } if (p is Peao && p.qteMovimentos == 1 && (destino.Linha == 3 || destino.Linha == 4)) { vulneravelenpassant = p; } else { vulneravelenpassant = null; } return(pecacapturada); }
private bool podeMover(Posicao pos) { Peca p = tab.peca(pos); return(p == null || p.cor != cor); }
public void colocarNovaPeca(char Coluna, int Linha, Peca Peca) { Tab.ColocarPecas(Peca, new PosicaoXadrez(Coluna, Linha).ToPosicao()); Pecas.Add(Peca); }
public void ColocarNovaPeca(char coluna, int linha, Peca peca) { Tab.ColocarPeca(peca, new PosicaoXadrez(coluna, linha).ToPosicao()); Pecas.Add(peca); }
private bool testeTorreParaRoque(Posicao pos) { Peca p = tab.peca(pos); return(p != null && p is Torre && p.cor == cor && p.qteMovimentos == 0); }