Solução: Problema do jogo do milhão (Versão para Java)

From AdonaiMedrado.Pro.Br
Jump to: navigation, search

Método 1

import java.util.Scanner;
 
public class Main 
{
    public static void main(String[] args) throws Exception
    {
        String[] perguntas = new String[]
            {
            "A cor do cachorro branco de Pedro era branca.",
            "A Microsoft é a empresa que desenvolve o sistema operacional Windows.",
            "Uma janela não é uma caneta.",
            "É possível digitar em um teclado.",
            "Mouse em inglês pode ser traduzido como castelo.",
            "Na estória dos Sete Anões havia 7 anões.",
            "Em decimal, 2+2=5.",
            "A palavra \"casa\" tem 4 letras.",
            "A palavra \"frutas\" está no plural.",
            "Internet Explorer, Firefox e Opera são nomes de peças (hardware) do computador."};
        String[] gabarito = new String[]
            {   "C",
                "C",
                "C",
                "C",
                "E",
                "C",
                "E",
                "C",
                "C",
                "E"};
        Scanner leitor = new Scanner(System.in);
        String resposta;
        int pontuacao = 0;
 
        for(int i = 0; i< perguntas.length; i++)
        {
            System.out.println(perguntas[i]);
            resposta = leitor.nextLine();
 
            if (resposta.equals(gabarito[i]))
            {
                if (pontuacao == 0)
                    pontuacao = 100;
                else if (pontuacao == 500)
                    pontuacao = 1000;
                else
                    pontuacao+=50;
            }
            else if (resposta.equals("P"))
                break;
            else if (resposta.equals("C") || resposta.equals("E"))
            {
                pontuacao = 0;
                break;
            }
            else
                throw new Exception ("Opção inválida");
        }
 
        if (pontuacao == 0)
            System.out.println("Você não pontuou");
        else
            System.out.printf("Você ganhou %d pontos.\n",pontuacao);
    }
}

Método 2

Classe Pergunta

public class Pergunta
{
    private String gabarito;
    private String pergunta;
 
    public String getGabarito()
    {
        return gabarito;
    }
 
    public void setGabarito(String gabarito)
    {
        this.gabarito = gabarito;
    }
 
    public String getPergunta()
    {
        return pergunta;
    }
 
    public void setPergunta(String pergunta)
    {
        this.pergunta = pergunta;
    }
 
    public Pergunta(String vpergunta, String vgabarito)
    {
        pergunta = vpergunta;
        gabarito = vgabarito;
    }       
}

Classe Main

import java.util.ArrayList;
import java.util.Scanner;
 
public class Main {
    public static void main(String[] args) throws Exception
    {
        ArrayList<Pergunta> al = new ArrayList<Pergunta>();
        al.add(new Pergunta("A cor do cachorro branco de Pedro era branca.","C"));
        al.add(new Pergunta("A Microsoft é a empresa que desenvolve o sistema operacional Windows.","C"));
        al.add(new Pergunta("Uma janela não é uma caneta.","C"));
        al.add(new Pergunta("É possível digitar em um teclado.","C"));
        al.add(new Pergunta("Mouse em inglês pode ser traduzido como castelo.","E"));
        al.add(new Pergunta("Na estória dos Sete Anões havia 7 anões.","C"));
        al.add(new Pergunta("Em decimal, 2+2=5.","E"));
        al.add(new Pergunta("A palavra \"casa\" tem 4 letras.","C"));
        al.add(new Pergunta("A palavra \"frutas\" está no plural.","C"));
        al.add(new Pergunta("Internet Explorer, Firefox e Opera são nomes de peças (hardware) do computador.","E"));
 
        Scanner leitor = new Scanner(System.in);
        String resposta;
        int pontuacao = 0;
 
        for(Pergunta p: al)
        {
            System.out.println(p.getPergunta());
            resposta = leitor.nextLine();
 
            if (resposta.equals(p.getGabarito()))
            {
                if (pontuacao == 0)
                    pontuacao = 100;
                else if (pontuacao == 500)
                    pontuacao = 1000;
                else
                    pontuacao+=50;
            }
            else if (resposta.equals("P"))
                break;
            else if (resposta.equals("C") || resposta.equals("E"))
            {
                pontuacao = 0;
                break;
            }
            else
                throw new Exception ("Opção inválida");
        }
 
        if (pontuacao == 0)
            System.out.println("Você não pontuou");
        else
            System.out.printf("Você ganhou %d pontos.\n",pontuacao);
    }
}