1
resposta

[Projeto] Jogo de adivinhação

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 Adivinhacao {
    public static void main(String[] args) {
        int numero;
        int valorMinimo = 1;
        int valorMaximo = 100;
        int contador = 1;

            Random geradorNumero = new Random();
            int numeroSecreto = geradorNumero.nextInt(valorMaximo) + valorMinimo;

            System.out.println("Você iniciou o jogo de adivinhação!!!");

            do {
                Scanner numeroTentativa = new Scanner(System.in);
                System.out.print("\nDigite um número de " + valorMinimo + " a " + valorMaximo + ":");
                numero = numeroTentativa.nextInt();
                numeroTentativa.nextLine();

                System.out.println("O número digitado foi: " + numero);
                if (numero < valorMinimo || numero > valorMaximo) {
                    System.out.println("Número inválido!!!");
                    continue;
                } else {
                    if (numero > numeroSecreto) {
                        System.out.println("O número secreto é menor que " + numero + "!!!");
                        valorMaximo = numero - 1;
                    } else if (numero < numeroSecreto) {
                        System.out.println("O número secreto é maior que " + numero + "!!!");
                        valorMinimo = numero + 1;
                    } else {
                        System.out.println("Parabéns, você acertou o número secreto ("+ numeroSecreto + ") em [" + contador + "] tentativas!!!");
                        return;
                    }
                }
                contador++;
                if (contador == 6) {
                    System.out.println("\nVocê não acertou o número secreto em 5 tentativas. Fim de Jogo");
                    System.out.println("O número secreto era [" + numeroSecreto + "].");
                    break;
                }
            } while (numero != numeroSecreto);
    }
}

Neste desafio consegui aplicar o Scanner para capturar dados, o número aleatório é gerado aleatoriamente em cada execução, e ele conta com um contador para as tentativas do usuário. estruturas de controle para dicas e condicionais que determinam o bom funcionamento do jogo.

1 resposta

Olá, Paulo! Tudo certo?

Você fez um ótimo trabalho ao implementar a lógica do jogo de adivinhação, utilizando o Scanner para capturar a entrada do usuário e o Random para gerar o número aleatório.

Além disso, é uma boa prática fechar o Scanner após o uso para evitar vazamentos de recursos. Você pode fazer isso adicionando numeroTentativa.close(); logo após o loop do-while.

Bons estudos!