Exemple #1
0
 private void ColocarNovaPeca(char coluna, int linha, Peca peca)
 {
     Tab.ColocarPeca(peca, new PosicaoXadrez(coluna, linha).ToPosicao());
     Pecas.Add(peca);
 }
Exemple #2
0
        private bool podeMover(Posicao pos)
        {
            Peca p = tabu.peca(pos);

            return(p == null || p.cor != this.cor);
        }
Exemple #3
0
 public void ColocarNovaPeca(char coluna, int linha, Peca peca)
 {
     Tab.ColocarPeca(peca, new PosicaoXadrez(coluna, linha).ToPosicao());
     ConjuntoPecas.Add(peca);
 }
        private bool PodeMover(Posicao pos)
        {
            Peca p = Tab.Peca(pos);

            return(p == null || p.Cor != this.Cor);
        }
        private bool movimentoLivre(Posicao pos)
        {
            Peca p = tab.peca(pos);

            return(p == null || p.cor != this.cor);
        }
Exemple #6
0
        private bool PodeMover(Posicao posicao)
        {
            Peca peca = Tab.Peca(posicao);

            return(peca == null || peca.Cor != Cor);
        }
Exemple #7
0
        private bool PodeMover(Posicao pos)
        {
            Peca p = Tabuleiro.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);
 }
Exemple #9
0
 public void ColocarNovaPeca(Peca peca, char coluna, int linha)
 {
     Tabuleiro.ColocarPeca(peca, new PosicaoTabuleiro(coluna, linha).ToPosicao());
     _pecasEmJogo.Add(peca);
 }
Exemple #10
0
        private bool isThereEnemy(Position pos)
        {
            Peca p = board.peca(pos);

            return(p != null && p.color != this.color);
        }
Exemple #11
0
        private bool CanMove(Posicao pos)
        {
            Peca p = Chess.Piece(pos);

            return(p == null || p.Cor != Cor);
        }
Exemple #12
0
        private bool isFree(Position pos)
        {
            Peca p = board.peca(pos);

            return(board.peca(pos) == null);
        }
Exemple #13
0
        private bool canMove(Position pos)
        {
            Peca p = board.peca(pos);

            return(p == null || p.color != this.color);
        }
Exemple #14
0
        private bool TesteTorreParaRoque(Posicao pos)
        {
            Peca p = Tab.Peca(pos);

            return(p != null && p is Torre && p.Cor == Cor && p.QteMovimetos == 0);
        }
Exemple #15
0
        public bool existeInimigo(Posicao pos)
        {
            Peca p = tab.peca(pos);

            return(p == null || p.cor != cor);
        }
Exemple #16
0
        protected bool PodeMover(Posicao pos)
        {
            Peca p = Tab.GetPeca(pos);

            return(p == null || p.CorAtual != CorAtual);
        }
Exemple #17
0
        private bool testeTorreParaRoque(Posicao pos)
        {
            Peca p = tab.peca(pos);

            return(p != null && p is Torre && p.cor == cor && p.qtdMovimentos == 0);
        }
        public void Jogada(Posicao origem, Posicao destino)
        {
            Peca captura = MoverPeca(origem, destino);

            if (EmXeque(JogadorAtual))
            {
                ReverterJogada(origem, destino, captura);
                throw new TabuleiroException("Impossível se colocar em cheque!");
            }

            Peca p = Tabuleiro.Peca(destino);

            //PROMOÇÃO DE PEÇA
            if (p is Peao)
            {
                if (p.Cor == Cor.Branco && destino.Linha == 0 || p.Cor == Cor.Preto && destino.Linha == 7)
                {
                    Console.WriteLine();
                    Console.WriteLine("Possível promoção!");
                    Console.Write("Escolha [T]Torre, [B]Bispo, [C]Cavalo ou [D]Dama: ");
                    string promo = Console.ReadLine().ToLower();

                    switch (promo)
                    {
                    case "t":
                        Peca T = new Torre(Tabuleiro, p.Cor);
                        Tabuleiro.RetirarPeca(destino);
                        pecas.Remove(p);
                        Tabuleiro.ColocarPeca(T, destino);
                        pecas.Add(T);
                        break;

                    case "b":
                        Peca B = new Bispo(Tabuleiro, p.Cor);
                        Tabuleiro.RetirarPeca(destino);
                        pecas.Remove(p);
                        Tabuleiro.ColocarPeca(B, destino);
                        pecas.Add(B);
                        break;

                    case "c":
                        Peca C = new Cavalo(Tabuleiro, p.Cor);
                        Tabuleiro.RetirarPeca(destino);
                        pecas.Remove(p);
                        Tabuleiro.ColocarPeca(C, destino);
                        pecas.Add(C);
                        break;

                    case "d":
                        Peca D = new Dama(Tabuleiro, p.Cor);
                        Tabuleiro.RetirarPeca(destino);
                        pecas.Remove(p);
                        Tabuleiro.ColocarPeca(D, destino);
                        pecas.Add(D);
                        break;
                    }
                }
            }

            if (EmXeque(GetCorAdversaria(JogadorAtual)))
            {
                JogadorEmXeque = true;
            }

            else
            {
                JogadorEmXeque = false;
            }

            if (XequeMate(GetCorAdversaria(JogadorAtual)))
            {
                Finalizada = true;
            }

            else
            {
                Turno++;
                MudarJogador();
            }

            //EN PASSANT
            if (p is Peao && (destino.Linha == origem.Linha + 2 || destino.Linha == origem.Linha - 2))
            {
                EnPassant = p;
            }
            else
            {
                EnPassant = null;
            }
        }
Exemple #19
0
        private bool podeMover(Posicao pos)
        {
            Peca p = tabuleiro.Peca(pos);

            return(p == null || p.cor != cor);
        }
 private void NovaPeca(Peca peca, PosicaoXadrez posicao)
 {
     Tabuleiro.ColocarPeca(peca, posicao.ToPosicao());
     pecas.Add(peca);
 }
Exemple #21
0
        private bool podeMove(Posicao pos)
        {
            Peca p = tab.peca(pos);

            return(p == null || p.cor != cor);
        }
Exemple #22
0
        public bool  testeTorreParaRoque(Posicao pos)
        {
            Peca p = tab.peca(pos);

            return(p != null && p is torre && p.cor == cor && qtemov == 0);
        }
        public bool testeTorreParaRoque(Posicao pos)
        {
            Peca p = Tab.peca(pos);

            return(p != null && p is Torre && p.cor == cor && p.Movimentos == 0);
        }
Exemple #24
0
 /// <summary>
 /// Cria um movimento de captura.
 /// </summary>
 /// <param name="peca">Peça que está se movendo.</param>
 /// <param name="indice_origem">Índice da casa de origem.</param>
 /// <param name="indice_destino">Índice da casa de destino.</param>
 /// <param name="peca_captura">Peça capturada</param>
 public Movimento(Peca peca, int indice_origem, int indice_destino, Peca peca_captura) :
     this(peca, indice_origem, indice_destino)
 {
     PecaCaptura = peca_captura;
 }
Exemple #25
0
        private bool existeInimigo(Posicao pos)
        {
            Peca p = tab.peca(pos);

            return(p != null && p.cor != cor);
        }
Exemple #26
0
 /// <summary>
 /// Cria um movimento de promoção ou captura/promoção.
 /// </summary>
 /// <param name="peca">Peça que está se movendo.</param>
 /// <param name="indice_origem">Índice da casa de origem.</param>
 /// <param name="indice_destino">Índice da casa de destino.</param>
 /// <param name="peca_captura">Peça sendo capturada</param>
 /// <param name="peca_promocao">Peça de promoção (Dama, Torre, Bispo ou Cavalo)</param>
 public Movimento(Peca peca, int indice_origem, int indice_destino, Peca peca_captura, Peca peca_promocao) :
     this(peca, indice_origem, indice_destino)
 {
     PecaCaptura  = peca_captura;
     PecaPromocao = peca_promocao;
 }
Exemple #27
0
        private bool testeTorreRoque(Posicao pos)
        {
            Peca p = tabu.peca(pos);

            return(p != null && p is Torre && p.cor == cor && p.qteMovimentos == 0);  // use o is para checar se uma superclasse (p que é peça) é da subclasse correspondente (torre no caso)
        }
Exemple #28
0
 /// <summary>
 /// Captura de peão en-passant.
 /// </summary>
 /// <param name="peca">Peão</param>
 /// <param name="indice_origem">Índice da casa de origem.</param>
 /// <param name="indice_destino">Índice da casa de destino.</param>
 /// <param name="indice_peao_enpassant">Índice da casa do peão sendo removido.</param>
 public Movimento(Peca peca, int indice_origem, int indice_destino, int indice_peao_enpassant) :
     this(peca, indice_origem, indice_destino)
 {
     IndicePeaoEnPassant = indice_peao_enpassant;
 }
Exemple #29
0
        private bool ExisteInimigo(Posicao pos)
        {
            Peca p = Tab.Peca(pos);

            return(p != null && p.Cor != Cor);
        }
Exemple #30
0
        private bool podeMover(Posicao pos)
        {
            Peca p = Tab.getPeca(pos);

            return(p == null || p.Cor != Cor);
        }