1
resposta

[Projeto] Jogo de adivinhação - Resolução

package primeiroPrograma;

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

public class JogoAdivinha {

public static void main(String[] args) {
    Scanner entrada = new Scanner(System.in);
    Random random = new Random();
    
    int numeroAleatorio = random.nextInt(100); 
    int tentativas = 5;
    boolean acertou = false;
    
    System.out.println("--- Jogo adivinhação Número ---");
    
    for(int i = 0; i <= tentativas; i++) {
        System.out.println("Digite um número de 0 a 100:");
        int numeroChute = entrada.nextInt();
        
        
        if (numeroChute == numeroAleatorio) {
            System.out.println("Parabéns! Você acertou!");
            return;
        }else if(numeroChute > numeroAleatorio) {
            System.out.println("Tente novamente, o valor do número é menor");
        }else {
            System.out.println("Tente novamente, o valor do número é maior");
        }
    }
    
    if(!acertou) {System.out.println("Acabaram suas tentativas, você perdeu! O número correto era: " + numeroAleatorio);}
    entrada.close();
}

}

1 resposta

Olá, Lígia!

O código está quase lá, mas há um pequeno detalhe que precisa ser ajustado. No seu loop for, você está usando i <= tentativas como condição de parada, mas isso faz com que o loop execute 6 vezes ao invés de 5. Para corrigir isso, você pode alterar a condição para i < tentativas.

Além disso, você declarou a variável acertou como false, mas não a atualizou para true caso o usuário acerte o número. Para corrigir isso, você pode adicionar acertou = true; dentro do if onde você imprime "Parabéns! Você acertou!".

Com essas pequenas alterações, seu código deve funcionar corretamente. Veja como ficaria:

package primeiroPrograma;

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

public class JogoAdivinha {

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

        int numeroAleatorio = random.nextInt(100);
        int tentativas = 5;
        boolean acertou = false;

        System.out.println("--- Jogo adivinhação Número ---");

        for (int i = 0; i < tentativas; i++) {
            System.out.println("Digite um número de 0 a 100:");
            int numeroChute = entrada.nextInt();

            if (numeroChute == numeroAleatorio) {
                System.out.println("Parabéns! Você acertou!");
                acertou = true;
                break;
            } else if (numeroChute > numeroAleatorio) {
                System.out.println("Tente novamente, o valor do número é menor");
            } else {
                System.out.println("Tente novamente, o valor do número é maior");
            }
        }

        if (!acertou) {
            System.out.println("Acabaram suas tentativas, você perdeu! O número correto era: " + numeroAleatorio);
        }
        entrada.close();
    }
}

Espero ter ajudado e bons estudos!