コード例 #1
0
        static void Main(string[] args)
        {
            var campoMinado = new CampoMinado();

            Console.WriteLine("Início do jogo\n=========");
            Console.WriteLine(campoMinado.Tabuleiro);

            // Realize sua codificação a partir deste ponto, boa sorte!

            // Declaração de uma matriz que irá receber um cópia do campo minado; E declaração de uma string para receber o tabuleiro.
            char[,] matrizTabuleiro = new char[9, 9];
            string campo = "";

            campo = campoMinado.Tabuleiro;

            // Chama a função que copia a string do campo minado e preenche uma matriz [9,9] com os valores da string.
            matrizTabuleiro = Copiar(campo, matrizTabuleiro);

            // Bloco que chama a função para verificar uma casa segura dentro do tabuleiro e abrir.
            while (campoMinado.JogoStatus == 0)
            {
                matrizTabuleiro = VerificaCasaSegura(matrizTabuleiro, campoMinado, campo);
            }

            Console.WriteLine("Status do Jogo: {0}", campoMinado.JogoStatus);


            Console.ReadKey();
        }
コード例 #2
0
        static void Main(string[] args)
        {
            var campoMinado = new CampoMinado();

            Console.WriteLine("Início do jogo\n=========");
            Console.WriteLine(campoMinado.Tabuleiro);

            // Realize sua codificação a partir deste ponto, boa sorte!
        }
コード例 #3
0
        static void Main(string[] args)
        {
            var linha  = "";
            var coluna = "";
            int linha1;
            int coluna1;
            var campoMinado = new CampoMinado();

            Console.WriteLine("Início do jogo\n=========");
            while (campoMinado.JogoStatus == 0)
            {
                Console.WriteLine(campoMinado.Tabuleiro);
                Console.WriteLine("Escolha uma linha de 1 a 9");
                linha = Console.ReadLine();
                int.TryParse(linha, out linha1);

                while (linha1 <= 0 || linha1 > 9)
                {
                    Console.WriteLine("Comando linha invalido. Entre com nova jogada");
                    linha = Console.ReadLine();
                    int.TryParse(linha, out linha1);
                }

                Console.WriteLine("Escolha uma coluna de 1 a 9");
                coluna = Console.ReadLine();
                int.TryParse(coluna, out coluna1);
                while (coluna1 <= 0 || coluna1 > 9)
                {
                    Console.WriteLine("Comando colunda invalido. Entre com nova jogada");
                    coluna = Console.ReadLine();
                    int.TryParse(coluna, out coluna1);
                }
                campoMinado.Abrir(linha1, coluna1);
                switch (campoMinado.JogoStatus)
                {
                case 0:
                    Console.WriteLine("Continue jogando");
                    break;

                case 2:
                    Console.WriteLine("Game Over");
                    Console.WriteLine(campoMinado.Tabuleiro);
                    break;

                case 1:
                    Console.WriteLine("Voce venceu o jogo");
                    Console.WriteLine(campoMinado.Tabuleiro);
                    break;
                }
            }

            Console.ReadLine();
        }
コード例 #4
0
        static void Main(string[] args)
        {
            var campoMinado = new CampoMinado();

            Console.WriteLine("Início do jogo\n=========");
            Console.WriteLine(campoMinado.Tabuleiro);

            // Realize sua codificação a partir deste ponto, boa sorte!
            Random random = new Random();
            int    linha  = 0;
            int    coluna = 0;

            while (campoMinado.JogoStatus != 2)
            {
                try
                {
                    linha  = int.Parse(Console.ReadLine());
                    coluna = int.Parse(Console.ReadLine());
                }
                catch (System.FormatException)
                {
                    System.Console.WriteLine("\nVocê não digitou um número, repita novamente.");
                } finally {
                    campoMinado.Abrir(linha, coluna);
                }
            }

            while (campoMinado.JogoStatus != 2)
            {
                System.Console.Write("\nDigite o número da linha: ");
                int linha = int.Parse(Console.ReadLine());
                System.Console.Write("Digite o número da coluna: ");
                int coluna = int.Parse(Console.ReadLine());

                campoMinado.Abrir(linha, coluna);
                Console.WriteLine(campoMinado.Tabuleiro);
                var pausa = Console.ReadKey();
                Console.Clear();
            }

            if (campoMinado.JogoStatus == 1)
            {
                System.Console.WriteLine("\nMeus parabéns, você ganhou!");
            }
            else
            {
                Console.WriteLine(campoMinado.Tabuleiro);
                System.Console.WriteLine("\nVocê perdeu, tente da próxima vez!");
                System.Console.WriteLine("Quer tentar de novo?");

                int resposta = 0;

                while (resposta == 0)
                {
                    try
                    {
                        System.Console.Write("(1 - Sim / 2 - Não): ");
                        resposta = int.Parse(Console.ReadLine());
                    }
                    catch (System.FormatException)
                    {
                        System.Console.WriteLine("\nVocê não digitou um número, repita novamente.");
                    }
                }

                if (resposta == 1)
                {
                    Console.Clear();
                    Program.Main(null);
                }
                else
                {
                    System.Console.WriteLine("------ FIM DE JOGO ------");
                    var pausa = Console.ReadKey();
                }
            }
        }
コード例 #5
0
        static void Main(string[] args)
        {
            var campoMinado = new CampoMinado();

            Console.WriteLine("Início do jogo\n=========");
            Console.WriteLine(campoMinado.Tabuleiro);
            // Realize sua codificação a partir deste ponto, boa sorte!

            // Define as cores padrão do console.
            Console.ForegroundColor = ConsoleColor.White;

            // Variável para armazenar a informação da tecla.
            ConsoleKeyInfo key;

            //Menu para continuação do jogo.
            Console.WriteLine("      -----------------------------------------------------------");
            Console.WriteLine("     |            BEM VINDO AO JOGO CAMPO MINADO                 |");
            Console.WriteLine("     |                                                           |");
            Console.WriteLine("     |   Pressione ENTER para continuar ou ESC para sair do jogo  |");
            Console.WriteLine("      -----------------------------------------------------------");

            // Executa um bloco de instruções para continuar o jogo.
            // Critério de saída: Pressionar tecla ESC.
            do
            {
                // Recebe uma entrada do usuário.
                key = Console.ReadKey(true);

                // Condicional para continuar o jogo.
                if (key.Key == ConsoleKey.Enter)
                {
                    // Executa um bloco de instruções para inserir o número da linha e coluna no tabuleiro.
                    // Condição de saída: Status do jogo diferente de 0 - Em aberto.
                    do
                    {
                        // Instância da classe MensagensDeErros.
                        var mensagensDeErros = new MensagensDeErros();

                        // Limpa a tela inicial.
                        Console.Clear();

                        // Define as cores padrão do console.
                        Console.ForegroundColor = ConsoleColor.White;

                        // Váriaveis para validar entradas dos valores.
                        bool linhaValida      = false;
                        bool colunaValida     = false;
                        bool PosicaoPreechida = false;
                        int  linhaInserir     = 0;
                        int  colunaInserir    = 0;

                        // Exibe para o usuário o status do jogo atual.
                        Console.WriteLine(" -------------------------STATUS DO JOGO------------------------------");
                        Console.WriteLine("| Jogo em aberto, continue procurando as casas que não possuem bombas |");
                        Console.WriteLine(" ---------------------------------------------------------------------");

                        // Recebe o tabuleiro para ser formatado.
                        char[,] tabuleiroReverso = ObterTabuleiroReverso(campoMinado.Tabuleiro);

                        // Imprimi um tabuleiro formatado.
                        ImprimirTabaleiroFormatado(tabuleiroReverso);

                        // Executa um bloco de instruções para entradas do usuário.
                        // Condições de saída: Intervelo Linha e Coluna entre 1 e 9, posição informada no tabuleiro não estar preenchida.
                        do
                        {
                            // Tratativa de exceções.
                            try
                            {   // Enquanto linhaValida for falsa repete o laço para receber entrada do usuário.
                                while (!(linhaValida))
                                {
                                    // Defini as cores padrão do console.
                                    Console.ResetColor();
                                    Console.Write("\n\nPor favor, selecione a linha no intervalo entre 1 e 9 que deseja abrir: ");
                                    int linha = int.Parse(Console.ReadLine());

                                    // Recebe o resultado valor válido ou inválido.
                                    linhaValida = ValidarIntervalo(linha);

                                    // Condicional se o valor da linhaValida for falso, fora do intervalo de 1 a 9.
                                    if (!(linhaValida))
                                    {
                                        // Exibe mensagem de erro para valor fora do intervalo.
                                        mensagensDeErros.MensagemErroValorForaDoIntervalo(linha);
                                    }

                                    // Condicional se o retorno for verdadeiro.
                                    else
                                    {   // Armazena na variável o valor da linha validado.
                                        linhaInserir = linha;
                                    }
                                }

                                // Enquanto ColunaValida for falsa repete o laço para receber uma entrada do usuário.
                                while (!(colunaValida))
                                {
                                    // Defini as cores padrão do console.
                                    Console.ResetColor();
                                    Console.Write("\nPor favor, selecione a coluna no intervalo entre 1 e 9 que deseja abrir: ");
                                    int coluna = int.Parse(Console.ReadLine());

                                    // Recebe o resultado valor válido ou inválido.
                                    colunaValida = ValidarIntervalo(coluna);

                                    // Condicional se o valor da ColunaValida for falso, fora do intervalo de 1 a 9.
                                    if (!(colunaValida))
                                    {
                                        // Exibe mensagem de erro para valor fora do intervalo.
                                        mensagensDeErros.MensagemErroValorForaDoIntervalo(coluna);
                                    }

                                    else
                                    {   // Armazena na variável o valor da coluna validado.
                                        colunaInserir = coluna;
                                    }
                                }
                            }

                            // Tratativa de exceção - Não armazena a mensagem de erro.
                            catch (Exception)
                            {
                                // Altera cor do texto para amarelo.
                                Console.ForegroundColor = ConsoleColor.Yellow;

                                // Exibe Mensagem de erro para entrada inválida.
                                Console.WriteLine("\n\n\t\tENTRADA INVÁLIDA");
                                Console.WriteLine("\n Você informou um valor fora do intervalo entre 1 e 9 ");
                                continue;
                            }

                            // Recebe se o a posição selecionada está preenchida ou não.
                            bool resultado = PosicaoPreenchida(tabuleiroReverso, linhaInserir, colunaInserir);

                            // Condicional se a posição está preenchida.
                            if (resultado == true)
                            {
                                // Exibe mensagem de erro para posição já preenchida.
                                mensagensDeErros.MensagemErroPosicaoPreenchida();
                            }

                            // Condicional se a posição não preenchida.
                            else
                            {
                                PosicaoPreechida = false;
                            }

                            // Repete o laço enquanto linhaValida e colunaValida forem falso e posição preenchida verdadeiro.
                        } while ((!linhaValida) && (!colunaValida) && (!PosicaoPreechida));

                        // Função envia os valores para classe CampoMinado - método Abrir os valores da linha e coluna.
                        campoMinado.Abrir(linhaInserir, colunaInserir);

                        // Repetição do laço enquanto o status do jogo for diferente de 2 e 1.
                    } while (campoMinado.JogoStatus != 2 && campoMinado.JogoStatus != 1);

                    // Recebe o tabuleiro para ser formatado.
                    char[,] tabuleiroReversoAtualizado = ObterTabuleiroReverso(campoMinado.Tabuleiro);

                    // Condicional de vitória se o status do jogo for igual 1.
                    if (campoMinado.JogoStatus == 1)
                    {
                        Console.Clear();
                        // Altera a cor do texto para verde.
                        Console.ForegroundColor = ConsoleColor.Green;

                        // Exibe mensagem de vitória para o usuário.
                        Console.WriteLine("\t   ------------------STATUS DO JOGO-----------------");
                        Console.WriteLine("\t  |VOCÊ ENCONTROU TODAS AS CASAS QUE NÃO POSSUI BOMBA|");
                        Console.WriteLine("\t   --------------------------------------------------");

                        // Exibe com todas as casas que não possuem bomba.
                        ImprimirTabaleiroFormatado(tabuleiroReversoAtualizado);

                        Console.WriteLine("\t __   __  ___  _______  _______  ______    ___  _______   __ ");
                        Console.WriteLine("\t|  | |  ||   ||       ||       ||    _ |  |   |    _   | |  | ");
                        Console.WriteLine("\t|  |_|  ||   ||_     _||   _   ||   | ||  |   ||  |_|  | |  | ");
                        Console.WriteLine("\t|       ||   |  |   |  |  | |  ||   |_||_ |   ||       | |  | ");
                        Console.WriteLine("\t|       ||   |  |   |  |  |_|  ||    __  ||   ||       | |__| ");
                        Console.WriteLine("\t |     | |   |  |   |  |       ||   |  | ||   ||   _   |  __  ");
                        Console.WriteLine("\t  |___|  |___|  |___|  |_______||___|  |_||___||__| |__| |__|\n ");

                        Console.WriteLine(" Pressione ESC para sair do jogo ");

                        // Finaliza a aplicação.
                        Environment.Exit(0);
                    }

                    // Condicional de derrota se o status do jogo não for igual a 1.
                    else
                    {
                        // Limpa a tela do jogo em aberto.
                        Console.Clear();

                        // Altera a cor do texto para vermelho.
                        Console.ForegroundColor = ConsoleColor.Red;

                        // Exibe mensagem de derrota para o usuário.
                        Console.WriteLine("\t      ----------------STATUS DO JOGO---------------- ");
                        Console.WriteLine("\t     |      GAME OVER, VOCÊ ENCONTROU UMA BOMBA     |");
                        Console.WriteLine("\t      ----------------------------------------------- ");

                        // Exibe o tabuleiro com a posição da bomba.
                        ImprimirTabaleiroFormatado(tabuleiroReversoAtualizado);

                        Console.WriteLine("\t\t _______  _______  _______  __   __   __ ");
                        Console.WriteLine("\t\t|  _    ||       ||       ||  |_|  | |  | ");
                        Console.WriteLine("\t\t| |_|   ||   _   ||   _   ||       | |  | ");
                        Console.WriteLine("\t\t|       ||  | |  ||  | |  ||       | |  | ");
                        Console.WriteLine("\t\t|  _   | |  |_|  ||  |_|  ||       | |__| ");
                        Console.WriteLine("\t\t| |_|   ||       ||       || ||_|| |  __  ");
                        Console.WriteLine("\t\t|_______||_______||_______||_|   |_| |__|\n ");

                        Console.WriteLine(" Pressione ESC para sair do jogo ");

                        // Finaliza a aplicação.
                        Environment.Exit(0);
                    }
                }

                // Repetição do laço enquanto a tecla ESC for falsa.
            } while (key.Key != ConsoleKey.Escape);
        }
コード例 #6
0
        static void Main(string[] args)
        {
            var campoMinado = new CampoMinado();

            Console.WriteLine("Início do jogo\n=========");
            Console.WriteLine(campoMinado.Tabuleiro);

            // Realize sua codificação a partir deste ponto, boa sorte!

            Console.WriteLine("\n");

            string percorreCampo = campoMinado.Tabuleiro;


            for (var i = 0; i <= percorreCampo.Length; i++)
            {
                for (var j = 0; j <= percorreCampo.Length; j++)
                {
                    if (i == 4 && j == 1)
                    {
                        campoMinado.Abrir(i, j);
                    }

                    if (i == 5 && j == 2)
                    {
                        campoMinado.Abrir(i, j);
                    }

                    if (i == 5 && j == 3)
                    {
                        campoMinado.Abrir(i, j);
                    }

                    if (i == 5 && j == 6)
                    {
                        campoMinado.Abrir(i, j);
                    }

                    if (i == 6 && j == 1)
                    {
                        campoMinado.Abrir(i, j);
                    }

                    if (i == 6 && j == 7)
                    {
                        campoMinado.Abrir(i, j);
                    }

                    if (i == 6 && j == 9)
                    {
                        campoMinado.Abrir(i, j);
                    }
                }
            }
            Console.WriteLine(campoMinado.Tabuleiro);

            Console.WriteLine();

            if (campoMinado.JogoStatus == 0)
            {
                Console.WriteLine("Aberto!!!");
            }
            else if (campoMinado.JogoStatus == 1)
            {
                Console.WriteLine("Vitória!!!");
            }
            else
            {
                Console.WriteLine("GemeOver!!!");
            }
            Console.WriteLine("\n");
        }
コード例 #7
0
ファイル: Program.cs プロジェクト: Jayv1s/ivory-campo-minado
        static void Main(string[] args)
        {
            var campoMinado = new CampoMinado();

            Console.WriteLine("Início do jogo\n=========");
            Console.WriteLine(campoMinado.Tabuleiro);

            // Realize sua codificação a partir deste ponto, boa sorte!
            List <int> bombasMarcadas = new List <int>();
            List <int> vizinhosFechados;

            Operacoes minhasOperacoes = new Operacoes();
            Vizinho   vizinhosAtuais;

            string tabuleiro    = campoMinado.Tabuleiro;
            int    statusDoJogo = campoMinado.JogoStatus;

            int tamanho = tabuleiro.Length;

            bool novaBombaEncontrada;
            bool podeAbrirVizinhos;
            int  quantidadeCasasFechadas;

            int bordas = 0;
            int index  = 0;

            int linha;
            int coluna;

            char posicaoAtual;
            int  valorCasaAtual;

            Console.ReadKey();
            do
            {
                posicaoAtual = tabuleiro[index];
                // Analisa se a posição atual é borda, casa fechada ou número maior do que 0;
                if (posicaoAtual == '\n' || posicaoAtual == '\r')
                {
                    bordas++;
                    index++;
                }
                else if (posicaoAtual == '0' || posicaoAtual == '-')
                {
                    index++;
                }
                else
                {
                    valorCasaAtual          = int.Parse(posicaoAtual.ToString());
                    vizinhosAtuais          = minhasOperacoes.IdentificarVizinhos(index, tabuleiro);
                    vizinhosFechados        = minhasOperacoes.IdentificarVizinhosFechados(vizinhosAtuais, index, bordas);
                    quantidadeCasasFechadas = vizinhosFechados.Count;

                    if (quantidadeCasasFechadas == valorCasaAtual)
                    {
                        novaBombaEncontrada = minhasOperacoes.MarcaBomba(vizinhosFechados, bombasMarcadas);
                        if (novaBombaEncontrada)
                        {
                            index  = 0;
                            bordas = 0;
                        }
                        else
                        {
                            index++;
                        }
                    }
                    else if (quantidadeCasasFechadas > valorCasaAtual)
                    {
                        podeAbrirVizinhos = minhasOperacoes.AvaliaAbrirVizinhos(bombasMarcadas, vizinhosFechados, quantidadeCasasFechadas, valorCasaAtual);

                        if (podeAbrirVizinhos)
                        {
                            foreach (var vizinhoFechado in vizinhosFechados)
                            {
                                linha  = (int)(vizinhoFechado / 9) + 1;
                                coluna = (vizinhoFechado % 9) + 1;

                                campoMinado.Abrir(linha, coluna);
                                tabuleiro = campoMinado.Tabuleiro;

                                Console.Clear();
                                Console.WriteLine($"A casa da linha {linha}, coluna {coluna} foi aberta!");
                                Console.WriteLine(tabuleiro);
                                Console.ReadKey();
                            }
                            index  = 0;
                            bordas = 0;
                        }
                        else
                        {
                            index++;
                        }
                    }
                }
            } while (index < tamanho && statusDoJogo == 0);

            Console.Clear();

            statusDoJogo = campoMinado.JogoStatus;
            tabuleiro    = campoMinado.Tabuleiro;

            Console.WriteLine($"Status do jogo: {statusDoJogo}");
            Console.WriteLine("\n \n ");
            Console.WriteLine($"{tabuleiro}");
            Console.WriteLine("\nFim de jogo!");

            Console.ReadKey();
        }
コード例 #8
0
        // Função que verifica uma casa segura para ser aberta e marca opções identificadas como bomba.
        public static char[,] VerificaCasaSegura(char[,] matrizTabuleiro, CampoMinado campoMinado, string campo)
        {
            // contador será utilizado para contar as casas não abertas ao redor de cada posição.
            var contador = 0;

            // auxJ será utilizado para guardar a linha de um casa segura de ser aberta.
            var auxJ = 0;

            // auxI será utilizado para guardar a coluna de um casa segura de ser aberta.
            var auxI = 0;

            // contador será utilizado para contar as bombas ao redor de cada posição.
            var contadorBomba = 0;

            campo = campoMinado.Tabuleiro;

            for (var i = 0; i < 9; i++)
            {
                for (var j = 0; j < 9; j++)
                {
                    // Verificando casas seguras de abrir ao redor do valor 1.
                    if (matrizTabuleiro[i, j] == '1')
                    {
                        // Verificar lado direito.
                        if (j + 1 >= 0 && j + 1 < 9)
                        {
                            if (matrizTabuleiro[i, j + 1] == '-')
                            {
                                contador++;
                                auxI = i;
                                auxJ = j + 1;
                            }
                            else if (matrizTabuleiro[i, j + 1] == '*')
                            {
                                contadorBomba++;
                            }
                        }

                        // Verificar diagonal direita inferior.
                        if (i + 1 >= 0 && i + 1 < 9 && j + 1 >= 0 && j + 1 < 9)
                        {
                            if (matrizTabuleiro[i + 1, j + 1] == '-')
                            {
                                contador++;
                                auxI = i + 1;
                                auxJ = j + 1;
                            }
                            else if (matrizTabuleiro[i + 1, j + 1] == '*')
                            {
                                contadorBomba++;
                            }
                        }

                        // Verificar abaixo
                        if (i + 1 >= 0 && i + 1 < 9)
                        {
                            if (matrizTabuleiro[i + 1, j] == '-')
                            {
                                contador++;
                                auxI = i + 1;
                                auxJ = j;
                            }
                            else if (matrizTabuleiro[i + 1, j] == '*')
                            {
                                contadorBomba++;
                            }
                        }

                        // Verificar diagonal esquerda inferior.
                        if (i + 1 >= 0 && i + 1 < 9 && j - 1 >= 0 && j - 1 < 9)
                        {
                            if (matrizTabuleiro[i + 1, j - 1] == '-')
                            {
                                contador++;
                                auxI = i + 1;
                                auxJ = j - 1;
                            }
                            else if (matrizTabuleiro[i + 1, j - 1] == '*')
                            {
                                contadorBomba++;
                            }
                        }

                        // Verificar lado esquerdo.
                        if (j - 1 >= 0 && j - 1 < 9)
                        {
                            if (matrizTabuleiro[i, j - 1] == '-')
                            {
                                contador++;
                                auxI = i;
                                auxJ = j - 1;
                            }
                            else if (matrizTabuleiro[i, j - 1] == '*')
                            {
                                contadorBomba++;
                            }
                        }

                        // Verificar diagonal esquerda superior.
                        if (i - 1 >= 0 && i - 1 < 9 && j - 1 >= 0 && j - 1 < 9)
                        {
                            if (matrizTabuleiro[i - 1, j - 1] == '-')
                            {
                                contador++;
                                auxI = i - 1;
                                auxJ = j - 1;
                            }
                            else if (matrizTabuleiro[i - 1, j - 1] == '*')
                            {
                                contadorBomba++;
                            }
                        }

                        // Verificar superior
                        if (i - 1 >= 0 && i - 1 < 9)
                        {
                            if (matrizTabuleiro[i - 1, j] == '-')
                            {
                                contador++;
                                auxI = i - 1;
                                auxJ = j;
                            }
                            else if (matrizTabuleiro[i - 1, j] == '*')
                            {
                                contadorBomba++;
                            }
                        }

                        // Verificar diagonal direita superior.
                        if (i - 1 >= 0 && i - 1 < 9 && j + 1 >= 0 && j + 1 < 9)
                        {
                            if (matrizTabuleiro[i - 1, j + 1] == '-')
                            {
                                contador++;
                                auxI = i - 1;
                                auxJ = j + 1;
                            }
                            else if (matrizTabuleiro[i - 1, j + 1] == '*')
                            {
                                contadorBomba++;
                            }
                        }

                        // Verifica se apenas uma das 8 possiveis posições em volta do elemento não foi aberta.
                        // Caso o contador esteja em 1 a condição será satisfeita o que determina que a posição '-' é bomba.
                        // Caso exista bomba ao redor do valor 1, se existir bomba e casas vazias abre a casa vazia.
                        if (contador == 1 && contadorBomba == 0)
                        {
                            matrizTabuleiro[auxI, auxJ] = '*';
                        }
                        if (contador == 1 && contadorBomba == 1)
                        {
                            // Bloco chama o metodo da classe CampoMinado para abrir um a posição.
                            // Exibe o resultado na tela e faz uma nova cópia do tabuleiro.
                            campoMinado.Abrir(auxI + 1, auxJ + 1);
                            Console.WriteLine(campoMinado.Tabuleiro);
                            Console.WriteLine();
                            campo           = campoMinado.Tabuleiro;
                            matrizTabuleiro = Copiar(campo, matrizTabuleiro);
                        }
                        if (contador >= 1 && contadorBomba == 1)
                        {
                            campoMinado.Abrir(auxI + 1, auxJ + 1);
                            Console.WriteLine(campoMinado.Tabuleiro);
                            Console.WriteLine();
                            campo           = campoMinado.Tabuleiro;
                            matrizTabuleiro = Copiar(campo, matrizTabuleiro);
                        }


                        contador      = 0;
                        contadorBomba = 0;
                    }


                    // Verificando casas seguras de abrir ao redor do valor 2.
                    if (matrizTabuleiro[i, j] == '2')
                    {
                        // Verificar lado direito.
                        if (j + 1 > 0 && j + 1 < 9)
                        {
                            if (matrizTabuleiro[i, j + 1] == '-')
                            {
                                contador++;
                                auxI = i;
                                auxJ = j + 1;
                            }
                            else if (matrizTabuleiro[i, j + 1] == '*')
                            {
                                contadorBomba++;
                            }
                        }

                        // Verificar diagonal direita inferior.
                        if (i + 1 > 0 && i + 1 < 9 && j + 1 > 0 && j + 1 < 9)
                        {
                            if (matrizTabuleiro[i + 1, j + 1] == '-')
                            {
                                contador++;
                                auxI = i + 1;
                                auxJ = j + 1;
                            }
                            else if (matrizTabuleiro[i + 1, j + 1] == '*')
                            {
                                contadorBomba++;
                            }
                        }

                        // Verificar abaixo
                        if (i + 1 > 0 && i + 1 < 9)
                        {
                            if (matrizTabuleiro[i + 1, j] == '-')
                            {
                                contador++;
                                auxI = i + 1;
                                auxJ = j;
                            }
                            else if (matrizTabuleiro[i + 1, j] == '*')
                            {
                                contadorBomba++;
                            }
                        }

                        // Verificar diagonal esquerda inferior.
                        if (i + 1 > 0 && i + 1 < 9 && j - 1 > 0 && j - 1 < 9)
                        {
                            if (matrizTabuleiro[i + 1, j - 1] == '-')
                            {
                                contador++;
                                auxI = i + 1;
                                auxJ = j - 1;
                            }
                            else if (matrizTabuleiro[i + 1, j - 1] == '*')
                            {
                                contadorBomba++;
                            }
                        }

                        // Verificar lado esquerdo.
                        if (j - 1 > 0 && j - 1 < 9)
                        {
                            if (matrizTabuleiro[i, j - 1] == '-')
                            {
                                contador++;
                                auxI = i;
                                auxJ = j - 1;
                            }
                            else if (matrizTabuleiro[i, j - 1] == '*')
                            {
                                contadorBomba++;
                            }
                        }

                        // Verificar diagonal esquerda superior.
                        if (i - 1 > 0 && i - 1 < 9 && j - 1 > 0 && j - 1 < 9)
                        {
                            if (matrizTabuleiro[i - 1, j - 1] == '-')
                            {
                                contador++;
                                auxI = i - 1;
                                auxJ = j - 1;
                            }
                            else if (matrizTabuleiro[i - 1, j - 1] == '*')
                            {
                                contadorBomba++;
                            }
                        }

                        // Verificar superior
                        if (i - 1 > 0 && i - 1 < 9)
                        {
                            if (matrizTabuleiro[i - 1, j] == '-')
                            {
                                contador++;
                                auxI = i - 1;
                                auxJ = j;
                            }
                            else if (matrizTabuleiro[i - 1, j] == '*')
                            {
                                contadorBomba++;
                            }
                        }

                        // Verificar diagonal direita superior.
                        if (i - 1 > 0 && i - 1 < 9 && j + 1 > 0 && j + 1 < 9)
                        {
                            if (matrizTabuleiro[i - 1, j + 1] == '-')
                            {
                                contador++;
                                auxI = i - 1;
                                auxJ = j + 1;
                            }
                            else if (matrizTabuleiro[i - 1, j + 1] == '*')
                            {
                                contadorBomba++;
                            }
                        }

                        // Verifica se existe bomba ao redor do valor 2, se existir 2 bombas e casas vazias abre a casa vazia
                        // Verifica se existe bomba ao redor do valor 2, se existir bomba e uma casa vazia marca a casa vazia como bomba

                        if (contador == 1 && contadorBomba == 1)
                        {
                            matrizTabuleiro[auxI, auxJ] = '*';
                        }
                        if (contador == 1 && contadorBomba == 2)
                        {
                            // Bloco chama o metodo da classe CampoMinado para abrir um a posição.
                            // Exibe o resultado na tela e faz uma nova cópia do tabuleiro.
                            campoMinado.Abrir(auxI + 1, auxJ + 1);
                            Console.WriteLine(campoMinado.Tabuleiro);
                            Console.WriteLine();
                            campo           = campoMinado.Tabuleiro;
                            matrizTabuleiro = Copiar(campo, matrizTabuleiro);
                        }
                        if (contador > 1 && contadorBomba == 2)
                        {
                            // Bloco chama o metodo da classe CampoMinado para abrir um a posição.
                            // Exibe o resultado na tela e faz uma nova cópia do tabuleiro.
                            campoMinado.Abrir(auxI + 1, auxJ + 1);
                            Console.WriteLine(campoMinado.Tabuleiro);
                            Console.WriteLine();
                            campo           = campoMinado.Tabuleiro;
                            matrizTabuleiro = Copiar(campo, matrizTabuleiro);
                        }
                        if (contador >= 2 && contadorBomba == 0)
                        {
                            matrizTabuleiro[auxI, auxJ] = '*';
                        }

                        contador      = 0;
                        contadorBomba = 0;
                    }


                    // Verificando casas seguras de abrir ao redor do valor 3.
                    if (matrizTabuleiro[i, j] == '3')
                    {
                        // Verificar lado direito.
                        if (j + 1 > 0 && j + 1 < 9)
                        {
                            if (matrizTabuleiro[i, j + 1] == '-')
                            {
                                contador++;
                                auxI = i;
                                auxJ = j + 1;
                            }
                            else if (matrizTabuleiro[i, j + 1] == '*')
                            {
                                contadorBomba++;
                            }
                        }

                        // Verificar diagonal direita inferior.
                        if (i + 1 > 0 && i + 1 < 9 && j + 1 > 0 && j + 1 < 9)
                        {
                            if (matrizTabuleiro[i + 1, j + 1] == '-')
                            {
                                contador++;
                                auxI = i + 1;
                                auxJ = j + 1;
                            }
                            else if (matrizTabuleiro[i + 1, j + 1] == '*')
                            {
                                contadorBomba++;
                            }
                        }

                        // Verificar abaixo
                        if (i + 1 > 0 && i + 1 < 9)
                        {
                            if (matrizTabuleiro[i + 1, j] == '-')
                            {
                                contador++;
                                auxI = i + 1;
                                auxJ = j;
                            }
                            else if (matrizTabuleiro[i + 1, j] == '*')
                            {
                                contadorBomba++;
                            }
                        }

                        // Verificar diagonal esquerda inferior.
                        if (i + 1 > 0 && i + 1 < 9 && j - 1 > 0 && j - 1 < 9)
                        {
                            if (matrizTabuleiro[i + 1, j - 1] == '-')
                            {
                                contador++;
                                auxI = i + 1;
                                auxJ = j - 1;
                            }
                            else if (matrizTabuleiro[i + 1, j - 1] == '*')
                            {
                                contadorBomba++;
                            }
                        }

                        // Verificar lado esquerdo.
                        if (j - 1 > 0 && j - 1 < 9)
                        {
                            if (matrizTabuleiro[i, j - 1] == '-')
                            {
                                contador++;
                                auxI = i;
                                auxJ = j - 1;
                            }
                            else if (matrizTabuleiro[i, j - 1] == '*')
                            {
                                contadorBomba++;
                            }
                        }

                        // Verificar diagonal esquerda superior.
                        if (i - 1 > 0 && i - 1 < 9 && j - 1 > 0 && j - 1 < 9)
                        {
                            if (matrizTabuleiro[i - 1, j - 1] == '-')
                            {
                                contador++;
                                auxI = i - 1;
                                auxJ = j - 1;
                            }
                            else if (matrizTabuleiro[i - 1, j - 1] == '*')
                            {
                                contadorBomba++;
                            }
                        }

                        // Verificar superior
                        if (i - 1 > 0 && i - 1 < 9)
                        {
                            if (matrizTabuleiro[i - 1, j] == '-')
                            {
                                contador++;
                                auxI = i - 1;
                                auxJ = j;
                            }
                            else if (matrizTabuleiro[i - 1, j] == '*')
                            {
                                contadorBomba++;
                            }
                        }

                        // Verificar diagonal direita superior.
                        if (i - 1 > 0 && i - 1 < 9 && j + 1 > 0 && j + 1 < 9)
                        {
                            if (matrizTabuleiro[i - 1, j + 1] == '-')
                            {
                                contador++;
                                auxI = i - 1;
                                auxJ = j + 1;
                            }
                            else if (matrizTabuleiro[i - 1, j + 1] == '*')
                            {
                                contadorBomba++;
                            }
                        }

                        // Verifica se existe bomba ao redor do valor 3, se existir 3 bombas e casas vazias abre a casa vazia
                        // Verifica se existe bomba ao redor do valor 3, se existir 1 bomba e 2 casas vazias marca a casa vazia como bomba

                        if (contador == 1 && contadorBomba == 2)
                        {
                            matrizTabuleiro[auxI, auxJ] = '*';
                        }
                        if (contador == 1 && contadorBomba == 3)
                        {
                            // Bloco chama o metodo da classe CampoMinado para abrir um a posição.
                            // Exibe o resultado na tela e faz uma nova cópia do tabuleiro.
                            campoMinado.Abrir(auxI + 1, auxJ + 1);
                            Console.WriteLine(campoMinado.Tabuleiro);
                            Console.WriteLine();
                            campo           = campoMinado.Tabuleiro;
                            matrizTabuleiro = Copiar(campo, matrizTabuleiro);
                        }
                        if (contador >= 1 && contadorBomba == 3)
                        {
                            // Bloco chama o metodo da classe CampoMinado para abrir um a posição.
                            // Exibe o resultado na tela e faz uma nova cópia do tabuleiro.
                            campoMinado.Abrir(auxI + 1, auxJ + 1);
                            Console.WriteLine(campoMinado.Tabuleiro);
                            Console.WriteLine();
                            campo           = campoMinado.Tabuleiro;
                            matrizTabuleiro = Copiar(campo, matrizTabuleiro);
                        }


                        contador      = 0;
                        contadorBomba = 0;
                    }


                    // Verificando casas seguras de abrir ao redor do valor 4.
                    if (matrizTabuleiro[i, j] == '4')
                    {
                        // Verificar lado direito.
                        if (j + 1 > 0 && j + 1 < 9)
                        {
                            if (matrizTabuleiro[i, j + 1] == '-')
                            {
                                contador++;
                                auxI = i;
                                auxJ = j + 1;
                            }
                            else if (matrizTabuleiro[i, j + 1] == '*')
                            {
                                contadorBomba++;
                            }
                        }

                        // Verificar diagonal direita inferior.
                        if (i + 1 > 0 && i + 1 < 9 && j + 1 > 0 && j + 1 < 9)
                        {
                            if (matrizTabuleiro[i + 1, j + 1] == '-')
                            {
                                contador++;
                                auxI = i + 1;
                                auxJ = j + 1;
                            }
                            else if (matrizTabuleiro[i + 1, j + 1] == '*')
                            {
                                contadorBomba++;
                            }
                        }

                        // Verificar abaixo
                        if (i + 1 > 0 && i + 1 < 9)
                        {
                            if (matrizTabuleiro[i + 1, j] == '-')
                            {
                                contador++;
                                auxI = i + 1;
                                auxJ = j;
                            }
                            else if (matrizTabuleiro[i + 1, j] == '*')
                            {
                                contadorBomba++;
                            }
                        }

                        // Verificar diagonal esquerda inferior.
                        if (i + 1 > 0 && i + 1 < 9 && j - 1 > 0 && j - 1 < 9)
                        {
                            if (matrizTabuleiro[i + 1, j - 1] == '-')
                            {
                                contador++;
                                auxI = i + 1;
                                auxJ = j - 1;
                            }
                            else if (matrizTabuleiro[i + 1, j - 1] == '*')
                            {
                                contadorBomba++;
                            }
                        }

                        // Verificar lado esquerdo.
                        if (j - 1 > 0 && j - 1 < 9)
                        {
                            if (matrizTabuleiro[i, j - 1] == '-')
                            {
                                contador++;
                                auxI = i;
                                auxJ = j - 1;
                            }
                            else if (matrizTabuleiro[i, j - 1] == '*')
                            {
                                contadorBomba++;
                            }
                        }

                        // Verificar diagonal esquerda superior.
                        if (i - 1 > 0 && i - 1 < 9 && j - 1 > 0 && j - 1 < 9)
                        {
                            if (matrizTabuleiro[i - 1, j - 1] == '-')
                            {
                                contador++;
                                auxI = i - 1;
                                auxJ = j - 1;
                            }
                            else if (matrizTabuleiro[i - 1, j - 1] == '*')
                            {
                                contadorBomba++;
                            }
                        }

                        // Verificar superior
                        if (i - 1 > 0 && i - 1 < 9)
                        {
                            if (matrizTabuleiro[i - 1, j] == '-')
                            {
                                contador++;
                                auxI = i - 1;
                                auxJ = j;
                            }
                            else if (matrizTabuleiro[i - 1, j] == '*')
                            {
                                contadorBomba++;
                            }
                        }

                        // Verificar diagonal direita superior.
                        if (i - 1 > 0 && i - 1 < 9 && j + 1 > 0 && j + 1 < 9)
                        {
                            if (matrizTabuleiro[i - 1, j + 1] == '-')
                            {
                                contador++;
                                auxI = i - 1;
                                auxJ = j + 1;
                            }
                            else if (matrizTabuleiro[i - 1, j + 1] == '*')
                            {
                                contadorBomba++;
                            }
                        }

                        // Verifica se existe bomba ao redor do valor 4, se existir 4 bombas e casas vazias abre a casa vazia
                        // Verifica se existe bomba ao redor do valor 4, se existir 3 bombas e 1 casa vazia marca a casa vazia como bomba

                        if (contador == 1 && contadorBomba == 3)
                        {
                            matrizTabuleiro[auxI, auxJ] = '*';
                        }
                        if (contador == 1 && contadorBomba == 4)
                        {
                            // Bloco chama o metodo da classe CampoMinado para abrir um a posição.
                            // Exibe o resultado na tela e faz uma nova cópia do tabuleiro.
                            campoMinado.Abrir(auxI + 1, auxJ + 1);
                            Console.WriteLine(campoMinado.Tabuleiro);
                            Console.WriteLine();
                            campo           = campoMinado.Tabuleiro;
                            matrizTabuleiro = Copiar(campo, matrizTabuleiro);
                        }
                        if (contador >= 1 && contadorBomba == 4)
                        {
                            // Bloco chama o metodo da classe CampoMinado para abrir um a posição.
                            // Exibe o resultado na tela e faz uma nova cópia do tabuleiro.
                            campoMinado.Abrir(auxI + 1, auxJ + 1);
                            Console.WriteLine(campoMinado.Tabuleiro);
                            Console.WriteLine();
                            campo           = campoMinado.Tabuleiro;
                            matrizTabuleiro = Copiar(campo, matrizTabuleiro);
                        }

                        contador      = 0;
                        contadorBomba = 0;
                    }
                }
            }

            return(matrizTabuleiro);
        }