1
resposta

[Projeto] Jogo de Adivinhação (minha solução)

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

public class Main { public static void main(String[] args) { String mensagemInicial = """ Hello world! Vamos jogar um jogo, vai ser muito divertido! Tente adivinhar um número inteiro entre 0 e 100. Você tem 5 tentativas, a cada tentativa diremos se o número é maior ou menor que o número desejado. Vença e ganhe glória eterna! Perca e encare as consequências...

            QUE OS JOGOS COMECEM!!!
            """;

    System.out.println(mensagemInicial);

    int num = new Random().nextInt(100); // Número aleatório entre 0 e 99
    int tentativa;
    boolean venceu = false;

    Scanner scanner = new Scanner(System.in); // Criação do Scanner

    for (int i = 1; i <= 5; i++) {
        System.out.print("Digite a sua tentativa número " + i + ": ");
        tentativa = scanner.nextInt(); // Lê o número inserido pelo usuário

        if (tentativa == num) {
            System.out.println("Parabéns! Você acertou o número " + num + "!");
            venceu = true;
            break; // Sai do loop, pois o jogador venceu
        } else if (tentativa < num) {
            System.out.println("O número correto é maior.");
        } else {
            System.out.println("O número correto é menor.");
        }
    }

    if (!venceu) {
        System.out.println("Que pena! Você não acertou. O número era " + num + ".");
    }

    scanner.close(); // Fecha o Scanner
}

}

1 resposta

Oi João,

Parabéns pelo seu projeto do jogo de adivinhação! Seu código está bem estruturado e fácil de entender. A lógica do jogo está implementada corretamente, com a geração do número aleatório, a leitura das tentativas do usuário e a verificação se o palpite está correto, maior ou menor.

Alguns pontos que você pode considerar para aprimorar seu código:

  • Validação de entrada: O código não está tratando se o usuário digitar algo que não seja um número inteiro. Você pode adicionar um tratamento de exceção (try-catch) para garantir que a entrada seja válida.
  • Dificuldade do jogo: Você pode adicionar níveis de dificuldade, alterando o intervalo dos números aleatórios ou o número de tentativas.
  • Rejogar: Você pode adicionar a opção de jogar novamente sem ter que executar o programa novamente.

Um exemplo de como você poderia adicionar a validação de entrada:

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

public class Main {
    public static void main(String[] args) {
        String mensagemInicial = """
                Hello world! Vamos jogar um jogo, vai ser muito divertido!
                Tente adivinhar um número inteiro entre 0 e 100.
                Você tem 5 tentativas, a cada tentativa diremos se o número é maior ou menor que o número desejado.
                Vença e ganhe glória eterna! Perca e encare as consequências...

                QUE OS JOGOS COMECEM!!!
                """;

        System.out.println(mensagemInicial);

        int num = new Random().nextInt(100);
        int tentativa;
        boolean venceu = false;

        Scanner scanner = new Scanner(System.in);

        for (int i = 1; i <= 5; i++) {
            while (true) {
                System.out.print("Digite a sua tentativa número " + i + ": ");
                try {
                    tentativa = scanner.nextInt();
                    break; // Sai do loop se a entrada for válida
                } catch (InputMismatchException e) {
                    System.out.println("Entrada inválida. Por favor, digite um número inteiro.");
                    scanner.next(); // Limpa o buffer do scanner
                }
            }

            if (tentativa == num) {
                System.out.println("Parabéns! Você acertou o número " + num + "!");
                venceu = true;
                break;
            } else if (tentativa < num) {
                System.out.println("O número correto é maior.");
            } else {
                System.out.println("O número correto é menor.");
            }
        }

        if (!venceu) {
            System.out.println("Que pena! Você não acertou. O número era " + num + ".");
        }

        scanner.close();
    }
}

Espero que estas sugestões ajudem a aprimorar

tux matrix    Caso este post o tenha ajudado, por favor, marcar como solucionado ☑️. Bons Estudos! 🤓