Ejemplo n.º 1
0
        public override bool[,] movimentacao()
        {
            bool[,] matriz_movimentacao = new bool[tabuleiro.linhas, tabuleiro.colunas];

            Posicao pos = new Posicao(0, 0);

            // posicao em cima e a esquerda
            pos.Posicao_2(posicao.linha - 1, pos.coluna - 1);
            while (tabuleiro.posicaoValida(pos) && movimentoAceito(pos))
            {
                matriz_movimentacao[pos.linha, pos.coluna] = true;
                if (tabuleiro.peca(pos) != null && tabuleiro.peca(pos).cor != this.cor)
                {
                    break;
                }
                pos.linha  = pos.linha - 1;
                pos.coluna = pos.coluna - 1;
            }

            // posicao em cima e a direita
            pos.Posicao_2(posicao.linha - 1, pos.coluna + 1);
            while (tabuleiro.posicaoValida(pos) && movimentoAceito(pos))
            {
                matriz_movimentacao[pos.linha, pos.coluna] = true;
                if (tabuleiro.peca(pos) != null && tabuleiro.peca(pos).cor != this.cor)
                {
                    break;
                }
                pos.linha  = pos.linha - 1;
                pos.coluna = pos.coluna + 1;
            }

            // posicao em baixo e a direita
            pos.Posicao_2(posicao.linha + 1, pos.coluna + 1);
            while (tabuleiro.posicaoValida(pos) && movimentoAceito(pos))
            {
                matriz_movimentacao[pos.linha, pos.coluna] = true;
                if (tabuleiro.peca(pos) != null && tabuleiro.peca(pos).cor != this.cor)
                {
                    break;
                }
                pos.linha  = pos.linha + 1;
                pos.coluna = pos.coluna + 1;
            }

            // posicao em baixo e a esquerda
            pos.Posicao_2(posicao.linha + 1, pos.coluna - 1);
            while (tabuleiro.posicaoValida(pos) && movimentoAceito(pos))
            {
                matriz_movimentacao[pos.linha, pos.coluna] = true;
                if (tabuleiro.peca(pos) != null && tabuleiro.peca(pos).cor != this.cor)
                {
                    break;
                }
                pos.linha  = pos.linha + 1;
                pos.coluna = pos.coluna - 1;
            }

            return(matriz_movimentacao);
        }
Ejemplo n.º 2
0
        public override bool[,] movimentacao()
        {
            bool[,] matriz_movimentacao = new bool[tabuleiro.linhas, tabuleiro.colunas];

            Posicao pos = new Posicao(0, 0);

            if (this.cor == "Branca")
            {
                pos.Posicao_2(posicao.linha - 1, posicao.coluna);
                if (tabuleiro.posicaoValida(pos) && posicaoLivre(pos))
                {
                    matriz_movimentacao[pos.linha, pos.coluna] = true;
                }
                pos.Posicao_2(posicao.linha - 2, posicao.coluna);
                if (tabuleiro.posicaoValida(pos) && posicaoLivre(pos) && movimento == 0)
                {
                    matriz_movimentacao[pos.linha, pos.coluna] = true;
                }
                pos.Posicao_2(posicao.linha - 1, posicao.coluna - 1);
                if (tabuleiro.posicaoValida(pos) && posicaoInimigo(pos))
                {
                    matriz_movimentacao[pos.linha, pos.coluna] = true;
                }
                pos.Posicao_2(posicao.linha - 1, posicao.coluna + 1);
                if (tabuleiro.posicaoValida(pos) && posicaoInimigo(pos))
                {
                    matriz_movimentacao[pos.linha, pos.coluna] = true;
                }
            }
            else
            {
                pos.Posicao_2(posicao.linha + 1, posicao.coluna);
                if (tabuleiro.posicaoValida(pos) && posicaoLivre(pos))
                {
                    matriz_movimentacao[pos.linha, pos.coluna] = true;
                }
                pos.Posicao_2(posicao.linha + 2, posicao.coluna);
                if (tabuleiro.posicaoValida(pos) && posicaoLivre(pos) && movimento == 0)
                {
                    matriz_movimentacao[pos.linha, pos.coluna] = true;
                }
                pos.Posicao_2(posicao.linha + 1, posicao.coluna - 1);
                if (tabuleiro.posicaoValida(pos) && posicaoInimigo(pos))
                {
                    matriz_movimentacao[pos.linha, pos.coluna] = true;
                }
                pos.Posicao_2(posicao.linha + 1, posicao.coluna + 1);
                if (tabuleiro.posicaoValida(pos) && posicaoInimigo(pos))
                {
                    matriz_movimentacao[pos.linha, pos.coluna] = true;
                }
            }
            return(matriz_movimentacao);
        }
Ejemplo n.º 3
0
        public override bool[,] movimentacao()
        {
            bool[,] matriz_movimentacao = new bool[tabuleiro.linhas, tabuleiro.colunas];

            Posicao pos = new Posicao(0, 0);

            // posicao em cima
            pos.Posicao_2(posicao.linha - 1, posicao.coluna);
            if (tabuleiro.posicaoValida(pos) && movimentoAceito(pos))
            {
                matriz_movimentacao[pos.linha, pos.coluna] = true;
            }

            // posicao em cima e a esquerda
            pos.Posicao_2(posicao.linha - 1, posicao.coluna + 1);
            if (tabuleiro.posicaoValida(pos) && movimentoAceito(pos))
            {
                matriz_movimentacao[pos.linha, pos.coluna] = true;
            }

            // posicao a direita
            pos.Posicao_2(posicao.linha, posicao.coluna + 1);
            if (tabuleiro.posicaoValida(pos) && movimentoAceito(pos))
            {
                matriz_movimentacao[pos.linha, pos.coluna] = true;
            }

            // posicao em baixo e a direita
            pos.Posicao_2(posicao.linha + 1, posicao.coluna + 1);
            if (tabuleiro.posicaoValida(pos) && movimentoAceito(pos))
            {
                matriz_movimentacao[pos.linha, pos.coluna] = true;
            }

            // posicao em baixo
            pos.Posicao_2(posicao.linha + 1, posicao.coluna);
            if (tabuleiro.posicaoValida(pos) && movimentoAceito(pos))
            {
                matriz_movimentacao[pos.linha, pos.coluna] = true;
            }

            // posicao em baixo e a esquerda
            pos.Posicao_2(posicao.linha + 1, posicao.coluna - 1);
            if (tabuleiro.posicaoValida(pos) && movimentoAceito(pos))
            {
                matriz_movimentacao[pos.linha, pos.coluna] = true;
            }

            // posicao a esquerda
            pos.Posicao_2(posicao.linha, posicao.coluna - 1);
            if (tabuleiro.posicaoValida(pos) && movimentoAceito(pos))
            {
                matriz_movimentacao[pos.linha, pos.coluna] = true;
            }

            // posicao em cima a esquerda
            pos.Posicao_2(posicao.linha - 1, posicao.coluna - 1);
            if (tabuleiro.posicaoValida(pos) && movimentoAceito(pos))
            {
                matriz_movimentacao[pos.linha, pos.coluna] = true;
            }
            return(matriz_movimentacao);
        }