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

Módulo 3 - Faça como eu fiz: 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.

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.
import java.util.Random;
import java.util.Scanner;

public class JogoAdivinhacao {
    public static void main(String[] args) {
        int numeroAleatorio = new Random().nextInt(100);
        int numeroTentativas = 0;

        Scanner scanner = new Scanner(System.in);

        while (numeroTentativas <= 5) {
            System.out.println("Adivinhe o número que está entre 1 e 100");
            int numeroUsuario = scanner.nextInt();
            numeroTentativas++;

            if (numeroUsuario == numeroAleatorio) {
                if (numeroTentativas != 1) {
                    System.out.printf("\nParabéns! Você acertou o número com %d tentativas", numeroTentativas);
                } else {
                    System.out.printf("\nParabéns! Você acertou o número com %d tentativa", numeroTentativas);
                }
                break;
            } else if (numeroUsuario > numeroAleatorio) {
                System.out.println("\nO número aleatório é menor.\n");
            } else {
                System.out.println("\nO número aleatório é maior.\n");
            }
        }

        System.out.println("\n\nFim de jogo.");

        scanner.close();
    }
}
2 respostas
solução!

Oi, Gabrielly! Tudo bem?

Excelente código, parabéns pelo projeto! Espero que esteja gostando do curso! Colocar em execução as atividades propostas pelo professor em aula é uma prática muito importante para internalizarmos o conteúdo.

Deixo apenas uma sugestão em relação ao loop while, que está configurado para permitir até 6 tentativas (de 0 a 5), mas para garantirmos que sejam apenas 5 tentativas podemos deixar o código da seguinte forma:

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

public class JogoAdivinhacao {
    public static void main(String[] args) {
        int numeroAleatorio = new Random().nextInt(100);
        int numeroTentativas = 0;
        final int MAX_TENTATIVAS = 5;

        Scanner scanner = new Scanner(System.in);

        while (numeroTentativas < MAX_TENTATIVAS) {
            System.out.println("Adivinhe o número que está entre 0 e 100");
            int numeroUsuario = scanner.nextInt();
            numeroTentativas++;

            if (numeroUsuario == numeroAleatorio) {
                System.out.printf("\nParabéns! Você acertou o número com %d tentativa(s)\n", numeroTentativas);
                break;
            } else if (numeroUsuario > numeroAleatorio) {
                System.out.println("\nO número aleatório é menor.\n");
            } else {
                System.out.println("\nO número aleatório é maior.\n");
            }
        }

        if (numeroTentativas == MAX_TENTATIVAS) {
            System.out.println("Você excedeu o número de tentativas. O número era " + numeroAleatorio);
        }

        System.out.println("\n\nFim de jogo.");
        scanner.close();
    }
}

Note que agora o while está configurado para numeroTentativas < MAX_TENTATIVAS, garantindo que o usuário tenha exatamente 5 tentativas. Podemos deixar também uma mensagem para quando o usuário exceder o número de tentativas sem acertar, informando qual era o número correto.

Caso tenha ficado alguma dúvida em relação ao curso ou atividade, sinta-se à vontade em comunicar, estou à disposição e ficarei super feliz em poder ajudar!

Um forte abraço e bons estudos!

Oii, Sarah! Tudo ótimo e contigo?

De fato, acabei me equivocando no loop while, obrigada por pontuar isso! E confesso que pensei também em colocar outra condição para quando o usuário ultrapasse o número de tentativas, mas deixei como estava mesmo xD