Пример #1
0
        static void Main(string[] args)
        {
            var testemunha = new Testemunha();
            int criminoso;
            int local;
            int arma;
            int dica;

            // Escreva seu código aqui.
            do
            {
                //Coleta de informações sobre o caso.
                //Criminoso
                Console.Write(" 1 - Advogado Sr. Marinho\n 2 - Chef. de Cozinha Tony Gourmet\n 3 - Coveiro Sérgio Sortuno\n 4 - Dançarina Srta. Rosa"
                              + "\n 5 - Florista Dona Branca\n 6 - Médica Dona Violeta\n 7 - Mordomo James\n 8 - Sargento Bigode\n QUAL O CRIMINOSO?: ");
                criminoso = int.Parse(Console.ReadLine());
                //Local
                Console.Write(" \n 1 - Biblioteca\n 2 - Cozinha\n 3 - Hall\n 4 - Escritório\n 5 - Sala de estar\n 6 - Sala de Jantar\n 7 - Sala de música"
                              + "\n 8 - Salão de festas\n 9 - Salão de jogos\n QUAL O LOCAL DO CRIME?: ");
                local = int.Parse(Console.ReadLine());
                //Arma
                Console.Write(" \n 1 - Castiçal\n 2 - Cano\n 3 - Chave Inglesa\n 4 - Corda\n 5 - Revólver\n 6 - Faca\n QUAL A ARMA UTILIZADA?: ");
                arma = int.Parse(Console.ReadLine());
                testemunha.Interrogar(criminoso, local, arma);


                //Respostas da testemunha.
                dica = testemunha.Interrogar(criminoso, local, arma);
                switch (dica)
                {
                case 1:
                    Console.WriteLine("\n 1 - O assassino está incorreto");
                    break;

                case 2:
                    Console.WriteLine("\n 2 - O local está incorreto");
                    break;

                case 3:
                    Console.WriteLine("\n 3 - A arma está incorreto");
                    break;

                case 0:
                    Console.Clear();
                    Console.WriteLine(" 0 - Parabéns você solucionou o caso");
                    Console.WriteLine(" Número de Tentativas: " + testemunha.ObterNumeroInterogatoriosRealizados());
                    Console.WriteLine("\n Tecle qualque tecla para sair!!");
                    Console.ReadKey();
                    Environment.Exit(0);
                    break;
                }
                Console.WriteLine(" Pressione qualquer tecla para uma nova tentativa ou ESC para fechar a aplicação.");
                if (Console.ReadKey().Key == ConsoleKey.Escape)
                {
                    Environment.Exit(0);
                }
                Console.Clear();
            } while (testemunha.Interrogar(criminoso, local, arma) != 0);
        }
        static void Main(string[] args)
        {
            var testemunha = new Testemunha();

            // Escreva seu código aqui.

            Console.WriteLine("Número de Tentativas: " + testemunha.ObterNumeroInterogatoriosRealizados());
            Console.ReadKey();
        }
Пример #3
0
        static void Main(string[] args)
        {
            var testemunha = new Testemunha();

            // Escreva seu código aqui.

            int aux = 1; //Flag

            do
            {
                Console.Clear();

                try
                {
                    Console.Write("Suspeito: ");
                    int criminoso = int.Parse(Console.ReadLine());

                    Console.Write("\nLocal: ");
                    int local = int.Parse(Console.ReadLine());

                    Console.Write("\nArma: ");
                    int arma = int.Parse(Console.ReadLine());

                    aux = testemunha.Interrogar(criminoso, local, arma);

                    Console.WriteLine("\nRetorno: {0}", aux);

                    if (aux != 0)
                    {
                        if (aux == 3)
                        {
                            Console.WriteLine("Arma incorreta.");
                        }
                        else if (aux == 2)
                        {
                            Console.WriteLine("Local incorreto.");
                        }
                        else if (aux == 1)
                        {
                            Console.WriteLine("Assassino incorreto.");
                        }
                    }
                    else
                    {
                        Console.WriteLine("\nVocê acertou!\n");
                    }
                }
                catch (FormatException)
                {
                    Console.WriteLine("Opção inválida!");
                }
            } while (Console.ReadKey().Key != ConsoleKey.Escape && aux != 0);

            Console.WriteLine("Número de Tentativas: " + testemunha.ObterNumeroInterogatoriosRealizados());
            Console.ReadKey();
        }
        static void Main(string[] args)
        {
            var testemunha = new Testemunha();

            var detetive = new Detetive();

            detetive.Interroga(testemunha);

            Console.WriteLine("Número de Tentativas: " + testemunha.ObterNumeroInterogatoriosRealizados());
            Console.ReadKey();
        }
        static void Main(string[] args)
        {
            var testemunha = new Testemunha();
            var encontrou  = false;
            var criminoso  = 1;
            var local      = 1;
            var arma       = 1;

            // Formula uma nova teoria enquanto o que foi perguntado for diferente do que a testemunha viu.
            while (!encontrou)
            {
                int retorno = testemunha.Interrogar(criminoso, local, arma);
                if (retorno == 1)
                {
                    criminoso++;
                }
                else if (retorno == 2)
                {
                    local++;
                }
                else if (retorno == 3)
                {
                    arma++;
                }
                else if (retorno == 0)
                {
                    encontrou = true;
                }
            }

            Dicionario dicionario     = new Dicionario();
            string     nomeCriminoso  = dicionario.BuscaCriminoso(criminoso);
            string     descricaoLocal = dicionario.BuscaLocal(local);
            string     tipoArma       = dicionario.BuscaArma(arma);

            Console.WriteLine($"DADOS DO CRIME {Environment.NewLine}");
            Console.WriteLine($"Nome do criminoso: {nomeCriminoso}");
            Console.WriteLine($"Local do crime: {descricaoLocal}");
            Console.WriteLine($"Arma utilizada: {tipoArma} {Environment.NewLine}");
            Console.WriteLine("Número de Tentativas: " + testemunha.ObterNumeroInterogatoriosRealizados());
            Console.ReadKey();
        }
        static void Main(string[] args)
        {
            var testemunha = new Testemunha();

            // Escreva seu código aqui.

            int tCriminoso;

            var tstCriminoso = new Random();

            tCriminoso = tstCriminoso.Next(1, 8);

            //Laço de repetição para validar os parametros e testar os mesmos n vezes até encontrar a combinação correta
            while (true)
            {
                var criminoso = new Random();
                int Criminoso = criminoso.Next(1, 9);

                Thread.Sleep(50);

                var local = new Random();
                int Local = local.Next(1, 10);

                Thread.Sleep(50);

                var arma = new Random();
                int Arma = arma.Next(1, 7);

                int op = testemunha.Interrogar(Criminoso, Local, Arma);
                Console.WriteLine(op);
                Console.WriteLine("Total de tentativas: " + testemunha.ObterNumeroInterogatoriosRealizados());
                if (op == 0)
                {
                    break;
                }
            }
            Console.WriteLine(testemunha.Interrogar(6, 4, 4));
            Console.WriteLine("Número de Tentativas: " + testemunha.ObterNumeroInterogatoriosRealizados());
            Console.ReadKey();
        }
        // Função que interroga a testemunha enquanto houver resposta errada.
        public int Interroga(Testemunha testemunha)
        {
            int resposta = testemunha.Interrogar(CriminosoTemporario, LocalTemporario, ArmaTemporaria);

            // Enquanto houver resposta errada irá adicionar 1 no item incorreto.
            while (resposta != 0)
            {
                if (resposta == 1)
                {
                    CriminosoTemporario++;
                }
                else if (resposta == 2)
                {
                    LocalTemporario++;
                }
                else
                {
                    ArmaTemporaria++;
                }

                resposta = testemunha.Interrogar(CriminosoTemporario, LocalTemporario, ArmaTemporaria);
            }

            // Atribuindo o valor correto que corresponde a cada item.
            Criminoso = CriminosoTemporario;
            Local     = LocalTemporario;
            Arma      = ArmaTemporaria;

            // Exibição.
            Console.WriteLine("Criminoso = " + Criminoso);
            Console.WriteLine("Local = " + Local);
            Console.WriteLine("Arma = " + Arma);
            Console.WriteLine("");

            return(1);
        }
Пример #8
0
        static void Main(string[] args)
        {
            var testemunha = new Testemunha();

            //Variaveis
            int suspeito;
            int local;
            int arma;
            int resposta;
            int finalizar = 1;

            Console.WriteLine("JOGO - DETETIVE\n" +
                              "--------------------------------------------------\n");

            try
            {
                do
                {
                    //Coletar o SUSPEITO escolhido pelo jogador
                    Helpers.Helpers.PerguntaSuspeito();

                    suspeito = int.Parse(Console.ReadLine());

                    /*
                     * Caso o número informado for menor ou maior do que as opções
                     * dadas, entrara em um loop até que seja informado o valor
                     * corretamente.
                     */
                    while (suspeito < 1 || suspeito > 8)
                    {
                        Console.WriteLine("ATENCÃO: Suas opções são de 1 a 8!" +
                                          "\nPrecione qualquer tecla para continuar...\n");
                        Console.ReadKey();
                        Console.Clear();
                        Helpers.Helpers.PerguntaSuspeito();
                        suspeito = int.Parse(Console.ReadLine());
                    }
                    Console.Clear();

                    //Coletar o LOCAL escolhido pelo jogador
                    Helpers.Helpers.PerguntaLocal();

                    local = int.Parse(Console.ReadLine());

                    /*
                     * Caso o número informado for menor ou maior do que as opções
                     * dadas, entrara em um loop até que seja informado o valor
                     * corretamente.
                     */
                    while (local < 1 || local > 9)
                    {
                        Console.WriteLine("ATENCÃO: Suas opções são de 1 a 9!" +
                                          "\nPrecione qualquer tecla para continuar...\n");
                        Console.ReadKey();
                        Console.Clear();
                        Helpers.Helpers.PerguntaLocal();
                        local = int.Parse(Console.ReadLine());
                    }
                    Console.Clear();

                    //Coletar o ARMA escolhido pelo jogador
                    Helpers.Helpers.PerguntaArma();

                    arma = int.Parse(Console.ReadLine());

                    /*
                     * Caso o número informado for menor ou maior do que as opções
                     * dadas, entrara em um loop até que seja informado o valor
                     * corretamente.
                     */
                    while (arma < 1 || arma > 6)
                    {
                        Console.WriteLine("ATENCÃO: Suas opções são de 1 a 6!" +
                                          "\nPrecione qualquer tecla para continuar...\n");
                        Console.ReadKey();
                        Console.Clear();
                        Helpers.Helpers.PerguntaArma();
                        arma = int.Parse(Console.ReadLine());
                    }
                    Console.Clear();


                    //-------------------------------------------------------------------------------------


                    //Exibe as opções escolhidas pelo jogador
                    Console.WriteLine("Escolhidos: \n" +
                                      "Suspeito: " + suspeito + " - " + Helpers.Helpers.RetornaSuspeito(suspeito) +
                                      "\nLocal: " + local + " - " + Helpers.Helpers.RetornaLocal(local) +
                                      "\nArma: " + arma + " - " + Helpers.Helpers.RetornaArma(arma)
                                      );

                    resposta = testemunha.Interrogar(suspeito, local, arma);

                    /*
                     * Caso a resposta seja diferente de 0, ou seja,
                     * diferente de "Todos corretos, você solucionou o caso"
                     * O código vai exibir apenas a resposta sem o número de tentativas.
                     */
                    if (resposta != 0)
                    {
                        Console.WriteLine("\n\nResposta.: " + Helpers.Helpers.VerificaResposta(resposta));
                        Console.WriteLine("\nDigite 1 para continuar ou 0 para finalizar");
                        finalizar = int.Parse(Console.ReadLine());
                        while (finalizar < 0 || finalizar > 1)
                        {
                            Console.WriteLine("ATENCÃO: Suas opções são de 1 a 0!");
                            Console.WriteLine("\nDigite 1 para continuar ou 0 para finalizar");
                            finalizar = int.Parse(Console.ReadLine());
                        }

                        Console.Clear();
                    }
                    else
                    {
                        Console.WriteLine("\n\nResposta.: " + Helpers.Helpers.VerificaResposta(resposta));
                        Console.WriteLine("Número de Tentativas: " + testemunha.ObterNumeroInterogatoriosRealizados());
                        Console.WriteLine("\nPressione qualquer tecla finalizar...");
                        Console.ReadKey();
                        Console.Clear();
                    }
                } while (resposta != 0 && finalizar != 0);
            }
            catch (FormatException e)
            {
                Console.WriteLine("Erro: Programa será fechado!" +
                                  "\nDeve-se digitar números inteiros ao invés de letras ou caracteres.");
                Console.ReadKey();
                Console.Clear();
            }
            Console.WriteLine("Obrigado por jogar!!!" +
                              "\nVolte sempre!!!");
            Console.ReadKey();
        }
        static void Main(string[] args)
        {
            var testemunha = new Testemunha();

            //Para testar a funcionalidade do algoritmo
            //Console.WriteLine("Opções escolhidas pelo computador:\n");
            //Console.WriteLine("Criminoso - "+ testemunha.Criminoso);
            //Console.WriteLine("Local - " + testemunha.Local);
            //Console.WriteLine("Arma - " + testemunha.Arma);
            //Console.WriteLine("\n");

            //Variáveis locais
            int criminoso;
            int local;
            int arma;
            int retorno = 1;

            //Loop
            do
            {
                try
                {
                    Console.WriteLine("Digite o número referente ao criminoso dentre as pções abaixo:\n" +
                                      "1 - Advogado Sr.Marinho\n" +
                                      "2 - Chef.de Cozinha Tony Gourmet\n" +
                                      "3 - Coveiro Sérgio Sortuno\n" +
                                      "4 - Dançarina Srta.Rosa\n" +
                                      "5 - Florista Dona Branca\n" +
                                      "6 - Médica Dona Violeta\n" +
                                      "7 - Mordomo James\n" +
                                      "8 - Sargento Bigode\n");
                    criminoso = Convert.ToInt16(Console.ReadLine());

                    Console.WriteLine("\nDigite o número referente ao local dentre as pções abaixo:\n" +
                                      "1 - Biblioteca\n" +
                                      "2 - Cozinha\n" +
                                      "3 - Hall\n" +
                                      "4 - Escritório\n" +
                                      "5 - Sala de estar\n" +
                                      "6 - Sala de jantar\n" +
                                      "7 - Sala de música\n" +
                                      "8 - Salão de festas\n" +
                                      "9 - Salão de jogos\n");
                    local = Convert.ToInt16(Console.ReadLine());

                    Console.WriteLine("\nDigite o número referente ao local dentre as pções abaixo:\n" +
                                      "1 - Castiçal\n" +
                                      "2 - Cano\n" +
                                      "3 - Chave inglesa\n" +
                                      "4 - Corda\n" +
                                      "5 - Revólver\n" +
                                      "6 - Faca\n");
                    arma = Convert.ToInt16(Console.ReadLine());

                    //Retornar resultado da investigação
                    retorno = testemunha.Interrogar(criminoso, local, arma);

                    if (retorno == 0)
                    {
                        Console.WriteLine("Parabéns, você descobriu qual foi o criminoso, o local e a arma!\n");
                    }
                    else if (retorno == 1)
                    {
                        Console.WriteLine("Retorno: " + retorno + " - Este não foi o criminoso.");
                    }
                    else if (retorno == 2)
                    {
                        Console.WriteLine("Retorno: " + retorno + " - Este não foi o local do crime.");
                    }
                    else if (retorno == 3)
                    {
                        Console.WriteLine("Retorno: " + retorno + " - Esta não foi a arma usada.");
                    }
                    Console.ReadKey();

                    Console.Clear();
                }
                //Evita dar erro caso for digitada uma opção incorreta
                catch (FormatException)
                {
                    Console.WriteLine("Opção inválida, tente novamente");
                }
            }while (retorno != 0);

            //Fim do algoritmo
            Console.WriteLine("Número de Tentativas: " + testemunha.ObterNumeroInterogatoriosRealizados());
            Console.ReadKey();
        }