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

[Projeto] Desafio do Jogo da Adivinhação do Número Secreto

Olá, pessoal.

Gostaria de compartilhar com vocês o código do meu jogo da adivinhação que é definido pelo seguinte enunciado:

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.

Dicas:

Para gerar um número aleatório em Java: new Random().nextInt(100);
Utilize o Scanner para obter os dados do usuário;
Utilize uma variável para contar as tentativas;
Utilize um loop para controlar as tentativas;
Utilize a instrução break; para interromper o loop.

Segue o código completo abaixo:

/*

    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.

    Dicas:

    Para gerar um número aleatório em Java: new Random().nextInt(100); - Feito
    Utilize o Scanner para obter os dados do usuário; - Feito
    Utilize uma variável para contar as tentativas; - Feito
    Utilize um loop para controlar as tentativas; - Feito
    Utilize a instrução break; para interromper o loop. - Feito

*/

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

public class JogoAdivinhacao {
    public static void main(String[] args) {
        Scanner leitura = new Scanner(System.in);
        int game = 1;

        while (game == 1) {
            int random = new Random().nextInt(100);
            int guess = 0;
            boolean correct = false;

            for (int i = 4; i >= 0; i--) {
                System.out.println("Digite um número entre 1 e 100");
                guess = leitura.nextInt();

                if (guess > random) {
                    System.out.println("O número sorteado é menor do que o número digitado.");
                } else if (guess < random) {
                    System.out.println("O número sorteado é maior do que o número digitado.");
                } else {
                    correct = true;
                    break;
                }

                if (i > 0) {
                    System.out.println("\nVocê tem mais %d tentativas\n".formatted(i));
                } else {
                    System.out.println("\nSuas tentativas acabaram.\n");
                }
            }

            if (correct) {
                System.out.println("Você ganhou o jogo!\n");
                System.out.println("O número secreto era %d!\n".formatted(random));
            } else {
                System.out.println("Que pena... Você perdeu!\n");
                System.out.println("O número secreto era %d!\n".formatted(random));
            }

            System.out.println("""
                    Deseja jogar novamente?
                    1 - SIM
                    0 - NÃO
                    """);
            game = leitura.nextInt();

            if (game == 0) {
                System.out.println("\nObrigado por jogar!");
                break;
            }
        }
    }
}

Gostaria de um feedback da comunidade sobre alguma sugestão de futura implementação a ser feita no meu pequeno projeto.

Abraços, Gabriel

1 resposta
solução!

Olá, Gabriel, como vai?

Seu código atende perfeitamente ao que foi solicitado no desafio, apresentando uma lógica bem estruturada e funcional para o controle de tentativas e a validação do número secreto. É interessante notar que você foi além do enunciado básico e implementou uma estrutura de repetição que permite ao usuário jogar novamente sem precisar reiniciar a aplicação manualmente, o que melhora consideravelmente a experiência de uso.

Para futuras implementações, você pode explorar o tratamento de exceções para garantir que o programa não seja interrompido caso o usuário digite um caractere em vez de um número.

Agradeço por compartilhar sua resolução com a comunidade e incentivo que continue praticando e postando seus projetos.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!