Beispiel #1
0
 public Rei(Tabuleiro tabuleiro, Cor cor) : base(cor, tabuleiro)
 {
 }
Beispiel #2
0
 public Rainha(Tabuleiro tab, Cor cor) : base(tab, cor)
 {
 }
Beispiel #3
0
 public Dama(Tabuleiro tab, Cor cor) : base(tab, cor)
 {
 }
Beispiel #4
0
 public Peao(Cor cor, Tabuleiro tab, PartidaDeXadrez partida)
     : base(cor, tab)
 {
     Partida = partida;
 }
Beispiel #5
0
 public Rei(Tabuleiro tab, Cor cor, PartidaDeXadrez partida) : base(tab, cor)
 {
     this.partida = partida;
 }
Beispiel #6
0
 public Rei(Tabuleiro tab, Cor cor) : base(tab, cor)
 {
 }
Beispiel #7
0
 private bool Livre(Posicao posicao)
 {
     return(Tabuleiro.Peca(posicao) == null);
 }
Beispiel #8
0
 public void ColocarNovaPeca(char coluna, int linha, Peca peca)
 {
     Tabuleiro.ColocarPeca(peca, new PosicaoXadrez(coluna, linha).ToPosicao());
     PecasEmJogo.Add(peca);
 }
Beispiel #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);
        }
Beispiel #10
0
        private bool ExisteInimigo(Posicao posicao)
        {
            Peca p = Tabuleiro.Peca(posicao);

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

            return(peca != null && peca.Cor != Cor);
        }
Beispiel #12
0
 public Peao(Cor cor, Tabuleiro tabuleiro) : base(cor, tabuleiro)
 {
 }
Beispiel #13
0
 public Dama(Tabuleiro tabuleiro, Cor cor) : base(cor, tabuleiro)
 {
 }
Beispiel #14
0
 public Peao(Tabuleiro tab, Cor cor, PartidaDeXadrez partida) : base(tab, cor)
 {
     Partida = partida;
 }
Beispiel #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);
        }
Beispiel #16
0
 public PartidaDeXadrez()
 {
     Tabuleiro = new Tabuleiro(8, 8);
     ColocarPecas();
 }
Beispiel #17
0
 public Bispo(Cor cor, Tabuleiro tab) : base(cor, tab)
 {
 }
Beispiel #18
0
        static void Main(string[] args)
        {
            Tabuleiro tabuleiro = new Tabuleiro(8, 8);

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

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