Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Faça como eu fiz: jogo de adivinhação] Está correto?

Crie um programa que simula um jogo de adivinhação, que deve gerar um número aleatório entre 0 e 100 e pedir para que o usuário tente adivinhar o número, em até 5 tentativas. A cada tentativa, o programa deve informar se o número digitado pelo usuário é maior ou menor do que o número gerado.

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

public class Jogo {

    public static void main(String[] args) {
        Scanner leitor = new Scanner(System.in);
        int numeroAleatorio = new Random().nextInt(100);
        System.out.println(numeroAleatorio);
        int tentativas = 0;
        int chute = 0;

        while (tentativas < 3) {
            System.out.println("Chute um número entre 0 e 100");
            chute = leitor.nextInt();
            tentativas++;

            if (chute == numeroAleatorio) {
                System.out.println("Boa! Você acertou o número aleatório " + numeroAleatorio + " em " + tentativas + " tentativas!");
                break;
            } else if (chute < numeroAleatorio) {
                System.out.println("O seu chute é maior que o número aleatório");
            } else {
                System.out.println("O seu chute é menor que o número aleatório");
            }
        }

        if (tentativas == 3 && chute != numeroAleatorio) {
            System.out.println("Que pena! Você não conseguiu encontrar o número aleatório em 3 tentativas. O numero aleatório era " +numeroAleatorio);
        }

    }
}
1 resposta
solução!

Olá, Luiz.

Tudo bem?

Seu código está quase perfeito, mas há alguns pequenos ajustes que você pode fazer para que ele esteja de acordo com o enunciado da atividade. O principal ponto é que o número de tentativas deve ser 5, e não 3, no caso pode ser por opção sua. Além disso, a mensagem que você imprime quando o chute é menor ou maior está invertida. Aqui está a versão corrigida:

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

public class Jogo {

    public static void main(String[] args) {
        Scanner leitor = new Scanner(System.in);
        int numeroAleatorio = new Random().nextInt(101); // Gera um número entre 0 e 100
        System.out.println(numeroAleatorio); // Pode remover essa linha depois de testar
        int tentativas = 0;
        int chute = 0;

        while (tentativas < 5) { // Mudei para 5 tentativas
            System.out.println("Chute um número entre 0 e 100");
            chute = leitor.nextInt();
            tentativas++;

            if (chute == numeroAleatorio) {
                System.out.println("Boa! Você acertou o número aleatório " + numeroAleatorio + " em " + tentativas + " tentativas!");
                break;
            } else if (chute < numeroAleatorio) {
                System.out.println("O seu chute é menor que o número aleatório"); // Corrigido
            } else {
                System.out.println("O seu chute é maior que o número aleatório"); // Corrigido
            }
        }

        if (tentativas == 5 && chute != numeroAleatorio) { // Mudei para 5 tentativas
            System.out.println("Que pena! Você não conseguiu encontrar o número aleatório em 5 tentativas. O número aleatório era " + numeroAleatorio);
        }

    }
}

São apenas sugestões, veja se faz sentido e se sim, aplique ao seu código.

Espero ter ajudado. Qualquer dúvida manda aqui. Bons estudos.