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);
        }
Example #3
0
        private bool existeInimigo(Posicao pos)
        {
            Peca p = tab.peca(pos);

            return(p != null && p.cor != cor);
        }
Example #4
0
 public void colocarNovaPeca(char coluna, int linha, Peca peca)
 {
     tab.colocarPeca(peca, new PosicaoXadrez(coluna, linha).toPosicao());
     pecas.Add(peca);
 }
Example #5
0
        public bool podeMover(Posicao pos)
        {
            Peca p = Tab.peca(pos);

            return(p == null || p.Cor != Cor);
        }
Example #6
0
 private bool TesteTorreRoque(Posicao pos)
 {
     Peca p = Tab.Peca(pos);
     return p != null && p is Torre && p.Cor == Cor && p.QtdeMovimentos == 0;
 }
Example #7
0
        public bool ExisteInimigo(Posicao pos)
        {
            Peca p = Tab.Peca(pos);

            return(p != null && p.Cor != Cor);
        }
Example #8
0
        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;
            }
        }
Example #9
0
        private bool testeTorreRoque(Posicao proxima)
        {
            Peca P = tabuleiro.peca(proxima);

            return(P != null && P is Torre && P.cor == cor && P.QuantMovimentos == 0);
        }
Example #10
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
        }
Example #11
0
        //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);
        }
Example #12
0
        private bool ExisteInimigo(Posicao posicao)
        {
            Peca peca = Tabuleiro.ObterPeca(posicao);

            return(peca != null && peca.Cor != Cor);
        }
Example #13
0
        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);
        }
Example #14
0
        private bool podeMover(Posicao pos)
        {
            Peca p = tab.peca(pos);

            return(p == null || p.cor != cor);
        }
Example #15
0
 public void colocarNovaPeca(char Coluna, int Linha, Peca Peca)
 {
     Tab.ColocarPecas(Peca, new PosicaoXadrez(Coluna, Linha).ToPosicao());
     Pecas.Add(Peca);
 }
Example #16
0
 public void ColocarNovaPeca(char coluna, int linha, Peca peca)
 {
     Tab.ColocarPeca(peca, new PosicaoXadrez(coluna, linha).ToPosicao());
     Pecas.Add(peca);
 }
Example #17
0
        private bool testeTorreParaRoque(Posicao pos)
        {
            Peca p = tab.peca(pos);

            return(p != null && p is Torre && p.cor == cor && p.qteMovimentos == 0);
        }