1
resposta

Faça como eu fiz: jogo de adivinhação

import java.util.Random;
import java.util.Scanner;

public class Main {
    private static final String numeroEhMenor = "O número informado é menor que o número sorteado.";
    private static final String numeroEhMaior = "O número informado é maior que o número sorteado.";
    private static final String numeroCorreto = "Parabéns! Você acertou!!";
    private static final String tentaviasEsgotadas = "Você perdeu, o número de tentativas foi esgotada!.";
    private static final String tentativasRestantes = "Tentativas restantes: ";
    private static final int numeroTotalDeTentativas = 5;

    public static void main(String[] args) {
        Scanner leitura = new Scanner(System.in);

        System.out.println("Jogo da adivinhação. Você tem 5 chances para tentar acertar o número entre 0 e 100!!");
        int numeroAleatorio = new Random().nextInt(100);
        int numeroUsuario;

        for (int i = 0; i < numeroTotalDeTentativas; i++) {
            System.out.println("Informe um número");
            numeroUsuario = leitura.nextInt();

            if (testarSeUsuarioAcertou(numeroUsuario, numeroTotalDeTentativas)) {
                System.out.println(numeroCorreto);
                break;
            }

            if (testarTentativasEsgotadas(i)){
                System.out.println(tentaviasEsgotadas);
                System.out.println("O número aleatório era: " + numeroAleatorio);
                break;
            }

            System.out.println(retornarDicaAoUsuario(numeroUsuario, numeroAleatorio) +
                    " Tentativas restantes: " + retornarNumeroTentativas(numeroTotalDeTentativas, i));
        }

        leitura.close();
    }

    public static String retornarDicaAoUsuario(int numeroUsuario, int numeroAleatorio) {

        if (numeroUsuario < numeroAleatorio) return numeroEhMenor;
        return numeroEhMaior;
    }

    public static boolean testarSeUsuarioAcertou(int numeroUsuario, int numeroAleatorio) {
        return numeroUsuario == numeroAleatorio;
    }

    public static boolean testarTentativasEsgotadas(int i) {
        return i == numeroTotalDeTentativas - 1;
    }

    public static int retornarNumeroTentativas(int tentativas, int i) {
        return tentativas - (i + 1);
    }
}
1 resposta

Oi, Thiago! Como vai?

Agradeço por compartilhar.

Seu código ficou bem organizado, com o uso de constantes para as mensagens e métodos separados para validar acerto, tentativas e dicas. Um ponto importante para ajustar está nesta linha: testarSeUsuarioAcertou(numeroUsuario, numeroTotalDeTentativas), pois o segundo parâmetro deveria ser o número sorteado, e não o total de tentativas.

Dica: troque para testarSeUsuarioAcertou(numeroUsuario, numeroAleatorio), assim a comparação será feita corretamente entre o número digitado e o número gerado pelo Random. Também vale revisar pequenos textos, como tentaviasEsgotadas, para manter os nomes das variáveis mais claros.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!