Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

[Dúvida] Problema na lógica do desafio do jogo de adivinhação.

Insira aqui a descrição dessa imagem para ajudar na acessibilidade Quando o número digitado pelo usuário é menor do que o número que deve ser adivinhado, o programa exibe a mensagem informando que o número a ser adivinhado é maior do que o número digitado. E vice-versa. Isso é um bug?

3 respostas

Fala Gabriel, de boa ?

Parece que sim, consegue postar pra gente o código que rodou pra gente ver onde está o problema ?

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

public class JogoAdivinhacao {

public static void main(String[] args) {
    Scanner leitor = new Scanner(System.in);
    int numeroGerado = new Random().nextInt(100); // gera um número aleatório entre 0 e 100
    int tentativas = 0;

    while (tentativas < 5) {
        System.out.print("Digite um número entre 0 e 100: ");
        int numeroDigitado = leitor.nextInt();
        tentativas++;

        if (numeroDigitado == numeroGerado) {
            System.out.println("Parabéns, você acertou o número em " + tentativas + " tentativas!");
            break; // interrompe o loop while
        } else if (numeroDigitado < numeroGerado) {
            System.out.println("O número digitado é menor que o número gerado.");
        } else {
            System.out.println("O número digitado é maior que o número gerado.");
        }
    }

    if (tentativas == 5) {
        System.out.println("Você não conseguiu adivinhar o número em 5 tentativas. O número era " + numeroGerado);
    }
}

}

solução!

Opa, e ae Gabriel, tranquilo?

O problmea está apenas na lógica de comparação, se você inverter a condição } else if (numeroDigitado < numeroGerado) { para } else if (numeroGerado < numeroDigitado) {, vai ver que vai conseguir consertar o bug do seu código

ou simplesmente alterando a mensagem :

} else if (numeroDigitado < numeroGerado) {
                System.out.println("O número digitado é maior que o número gerado.");
            } else {
                System.out.println("O número digitado é menor que o número gerado.");
            }

Espero ter ajudado.