示例#1
0
 public Rei(Tabuleiro tabuleiro, Cor cor) : base(cor, tabuleiro)
 {
 }
示例#2
0
 public Rainha(Tabuleiro tab, Cor cor) : base(tab, cor)
 {
 }
示例#3
0
 public Dama(Tabuleiro tab, Cor cor) : base(tab, cor)
 {
 }
示例#4
0
 public Peao(Cor cor, Tabuleiro tab, PartidaDeXadrez partida)
     : base(cor, tab)
 {
     Partida = partida;
 }
示例#5
0
 public Rei(Tabuleiro tab, Cor cor, PartidaDeXadrez partida) : base(tab, cor)
 {
     this.partida = partida;
 }
示例#6
0
 public Rei(Tabuleiro tab, Cor cor) : base(tab, cor)
 {
 }
示例#7
0
 private bool Livre(Posicao posicao)
 {
     return(Tabuleiro.Peca(posicao) == null);
 }
示例#8
0
 public void ColocarNovaPeca(char coluna, int linha, Peca peca)
 {
     Tabuleiro.ColocarPeca(peca, new PosicaoXadrez(coluna, linha).ToPosicao());
     PecasEmJogo.Add(peca);
 }
示例#9
0
        public override bool[,] MovimentosPossiveis()
        {
            bool[,] movimentos = new bool[Tabuleiro.Linhas, Tabuleiro.Colunas];
            Posicao aux  = new Posicao(0, 0);
            Posicao aux2 = new Posicao(0, 0);

            if (Cor == Cor.Vermelho)
            {
                aux.DefinirPosicao(Posicao.Linha - 1, Posicao.Coluna);
                if (Tabuleiro.VerificarPosicao(aux) && Livre(aux))
                {
                    movimentos[aux.Linha, aux.Coluna] = true;
                }

                aux.DefinirPosicao(Posicao.Linha - 2, Posicao.Coluna);
                aux2.DefinirPosicao(Posicao.Linha - 1, Posicao.Coluna);
                if (Tabuleiro.VerificarPosicao(aux) && Livre(aux) && Livre(aux2) && QtdMovimentos == 0)
                {
                    movimentos[aux.Linha, aux.Coluna] = true;
                }

                aux.DefinirPosicao(Posicao.Linha - 1, Posicao.Coluna - 1);
                if (Tabuleiro.VerificarPosicao(aux) && ExisteInimigo(aux))
                {
                    movimentos[aux.Linha, aux.Coluna] = true;
                }

                aux.DefinirPosicao(Posicao.Linha - 1, Posicao.Coluna + 1);
                if (Tabuleiro.VerificarPosicao(aux) && ExisteInimigo(aux))
                {
                    movimentos[aux.Linha, aux.Coluna] = true;
                }
            }
            else
            {
                aux.DefinirPosicao(Posicao.Linha + 1, Posicao.Coluna);
                if (Tabuleiro.VerificarPosicao(aux) && Livre(aux))
                {
                    movimentos[aux.Linha, aux.Coluna] = true;
                }

                aux.DefinirPosicao(Posicao.Linha + 2, Posicao.Coluna);
                aux2.DefinirPosicao(Posicao.Linha + 1, Posicao.Coluna);
                if (Tabuleiro.VerificarPosicao(aux) && Livre(aux) && Livre(aux2) && QtdMovimentos == 0)
                {
                    movimentos[aux.Linha, aux.Coluna] = true;
                }

                aux.DefinirPosicao(Posicao.Linha + 1, Posicao.Coluna - 1);
                if (Tabuleiro.VerificarPosicao(aux) && ExisteInimigo(aux))
                {
                    movimentos[aux.Linha, aux.Coluna] = true;
                }

                aux.DefinirPosicao(Posicao.Linha + 1, Posicao.Coluna + 1);
                if (Tabuleiro.VerificarPosicao(aux) && ExisteInimigo(aux))
                {
                    movimentos[aux.Linha, aux.Coluna] = true;
                }
            }
            return(movimentos);
        }
示例#10
0
        private bool ExisteInimigo(Posicao posicao)
        {
            Peca p = Tabuleiro.Peca(posicao);

            return(p != null && p.Cor != Cor);
        }
示例#11
0
        private bool ExisteInimigo(Posicao posicao)
        {
            Peca peca = Tabuleiro.ObterPeca(posicao);

            return(peca != null && peca.Cor != Cor);
        }
示例#12
0
 public Peao(Cor cor, Tabuleiro tabuleiro) : base(cor, tabuleiro)
 {
 }
示例#13
0
 public Dama(Tabuleiro tabuleiro, Cor cor) : base(cor, tabuleiro)
 {
 }
示例#14
0
 public Peao(Tabuleiro tab, Cor cor, PartidaDeXadrez partida) : base(tab, cor)
 {
     Partida = partida;
 }
示例#15
0
        public override bool[,] MovimentosPossiveis()
        {
            bool[,] mat = new bool[Tabuleiro.Linha, Tabuleiro.Coluna];

            Posicao posicao = new Posicao(0, 0);

            if (Cor == Cor.Branca)
            {
                posicao.DefinirValores(Posicao.Linha - 1, Posicao.Coluna);
                if (Tabuleiro.PosicaoValida(posicao) && Livre(posicao))
                {
                    mat[posicao.Linha, posicao.Coluna] = true;
                }

                posicao.DefinirValores(Posicao.Linha - 2, Posicao.Coluna);
                if (Tabuleiro.PosicaoValida(posicao) && Livre(posicao) && QteMovimentos == 0)
                {
                    mat[posicao.Linha, posicao.Coluna] = true;
                }

                posicao.DefinirValores(Posicao.Linha - 1, Posicao.Coluna - 1);
                if (Tabuleiro.PosicaoValida(posicao) && ExisteInimigo(posicao))
                {
                    mat[posicao.Linha, posicao.Coluna] = true;
                }

                posicao.DefinirValores(Posicao.Linha - 1, Posicao.Coluna + 1);
                if (Tabuleiro.PosicaoValida(posicao) && ExisteInimigo(posicao))
                {
                    mat[posicao.Linha, posicao.Coluna] = true;
                }

                // #Jogada especial En Passant
                if (Posicao.Linha == 3)
                {
                    Posicao esquerda = new Posicao(Posicao.Linha, Posicao.Coluna - 1);
                    if (Tabuleiro.PosicaoValida(esquerda) && ExisteInimigo(esquerda) && Tabuleiro.Peca(esquerda) == Partida.VulneravelEnPassant)
                    {
                        mat[esquerda.Linha - 1, esquerda.Coluna] = true;
                    }

                    Posicao direita = new Posicao(Posicao.Linha, Posicao.Coluna + 1);
                    if (Tabuleiro.PosicaoValida(direita) && ExisteInimigo(direita) && Tabuleiro.Peca(direita) == Partida.VulneravelEnPassant)
                    {
                        mat[direita.Linha - 1, direita.Coluna] = true;
                    }
                }
            }
            else
            {
                posicao.DefinirValores(Posicao.Linha + 1, Posicao.Coluna);
                if (Tabuleiro.PosicaoValida(posicao) && Livre(posicao))
                {
                    mat[posicao.Linha, posicao.Coluna] = true;
                }

                posicao.DefinirValores(Posicao.Linha + 2, Posicao.Coluna);
                if (Tabuleiro.PosicaoValida(posicao) && Livre(posicao) && QteMovimentos == 0)
                {
                    mat[posicao.Linha, posicao.Coluna] = true;
                }

                posicao.DefinirValores(Posicao.Linha + 1, Posicao.Coluna - 1);
                if (Tabuleiro.PosicaoValida(posicao) && ExisteInimigo(posicao))
                {
                    mat[posicao.Linha, posicao.Coluna] = true;
                }

                posicao.DefinirValores(Posicao.Linha + 1, Posicao.Coluna + 1);
                if (Tabuleiro.PosicaoValida(posicao) && ExisteInimigo(posicao))
                {
                    mat[posicao.Linha, posicao.Coluna] = true;
                }

                // #Jogada especial En Passant
                if (Posicao.Linha == 4)
                {
                    Posicao esquerda = new Posicao(Posicao.Linha, Posicao.Coluna - 1);
                    if (Tabuleiro.PosicaoValida(esquerda) && ExisteInimigo(esquerda) && Tabuleiro.Peca(esquerda) == Partida.VulneravelEnPassant)
                    {
                        mat[esquerda.Linha + 1, esquerda.Coluna] = true;
                    }

                    Posicao direita = new Posicao(Posicao.Linha, Posicao.Coluna + 1);
                    if (Tabuleiro.PosicaoValida(direita) && ExisteInimigo(direita) && Tabuleiro.Peca(direita) == Partida.VulneravelEnPassant)
                    {
                        mat[direita.Linha + 1, direita.Coluna] = true;
                    }
                }
            }


            return(mat);
        }
示例#16
0
 public PartidaDeXadrez()
 {
     Tabuleiro = new Tabuleiro(8, 8);
     ColocarPecas();
 }
示例#17
0
 public Bispo(Cor cor, Tabuleiro tab) : base(cor, tab)
 {
 }
示例#18
0
        static void Main(string[] args)
        {
            Tabuleiro tabuleiro = new Tabuleiro(8, 8);

            Console.WriteLine(new Posicao(2, 5));
        }
示例#19
0
 public Rei(Tabuleiro tabuleiro, Cor cor, PartidaDeXadrez partida) : base(cor, tabuleiro)
 {
     Partida = partida;
 }
示例#20
0
 public Bispo(Tabuleiro t, Cor cor) : base(t, cor)
 {
 }
示例#21
0
 public Cavalo(Tabuleiro tab, Cor cor) : base(tab, cor)
 {
 }
示例#22
0
 public Torre(Tabuleiro tabuleiro, Cor cor) : base(tabuleiro, cor)
 {
 }
示例#23
0
 public Rainha(Cor cor, Tabuleiro tab)
     : base(cor, tab)
 {
 }
示例#24
0
 public Bispo(Tabuleiro tab, Cor cor) : base(tab, cor)
 {
 }
示例#25
0
 public Torre(Tabuleiro tab, Cor cor) : base(cor, tab)
 {
 }
示例#26
0
 public Horse(Tabuleiro tab, Color color) : base(tab, color)
 {
 }
示例#27
0
文件: Bispo.cs 项目: jonycs/Xadrez
 public Bispo(Tabuleiro tab, Cor cor) : base(cor, tab)
 {
 }
示例#28
0
 public Cavalo(Tabuleiro tab, Cor cor) : base(cor, tab)
 {
 }
示例#29
0
        public bool PodeMover(Posicao posicao)
        {
            Peca p = Tabuleiro.peca(posicao);

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