1
resposta

[Sugestão] {Soluçao} jogo de adivinhaçao

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

class tentativa {
    public static void main(String[] args) {
        Scanner leitura = new Scanner(System.in);
        new Random().nextInt(100);
        System.out.println("Qual o numero sorteado? ");
    for (int i = 1; i <= 5; i++) {
        int numero =leitura.nextInt();
        if (numero == new Random().nextInt(100)  ){
            System.out.println("voce acertou o numero certo era" + new Random().nextInt(100));
            break;
        }
        else {
            if (numero < new Random().nextInt(100) ) {
                System.out.println("ERROU! esse numero é menor que numero sorteado");
            }
            else{
                System.out.println("ERROU! esse numero é maior que numero sorteado");
            }
        }
    }
    System.out.println("jogo acabou");
    }
    
}
1 resposta

Olá, Aldenir!

Primeiramente, percebi que você está gerando um número aleatório duas vezes dentro do loop for. Isso faz com que a comparação entre o número digitado pelo usuário e o número sorteado seja feita com números diferentes. Para corrigir isso, sugiro que você armazene o número sorteado em uma variável fora do loop, assim você pode utilizá-lo nas comparações.

Outro ponto que notei é que você está gerando um novo número aleatório a cada comparação. Isso faz com que o número sorteado seja diferente a cada vez que você compara com o número digitado pelo usuário. Para resolver isso, sugiro que você armazene o número sorteado em uma variável antes do loop e utilize essa mesma variável em todas as comparações.

Além disso, você não está incrementando a variável i dentro do loop, o que faz com que o loop seja executado apenas uma vez. Para corrigir isso, adicione i++ no final do loop.

Aqui está o código corrigido:

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

class tentativa {
    public static void main(String[] args) {
        Scanner leitura = new Scanner(System.in);
        Random random = new Random();
        int numeroSorteado = random.nextInt(100);
        System.out.println("Qual o número sorteado? ");
        
        for (int i = 1; i <= 5; i++) {
            int numero = leitura.nextInt();
            
            if (numero == numeroSorteado) {
                System.out.println("Você acertou! O número certo era " + numeroSorteado);
                break;
            } else if (numero < numeroSorteado) {
                System.out.println("ERROU! Esse número é menor que o número sorteado");
            } else {
                System.out.println("ERROU! Esse número é maior que o número sorteado");
            }
        }
        
        System.out.println("Jogo acabou");
    }
}

Espero que isso tenha te ajudado a entender o que estava errado no seu código.