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

[Sugestão] Projeto Jogo de Adivinhação

Criei o jogo de adivinhação dessa forma, não sei se é a mais correta, mas deu certo!

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

public class NumeroAleatorio {
    public static void main(String[] args) {

        int num_secreto= new Random().nextInt(100);
        System.out.println("Bem vindo ao jogo de adivinhação!");
        Scanner sc = new Scanner(System.in);
        int chute=0;
        int totalTentativas=1;
        while(chute != num_secreto || totalTentativas <= 5){
            try{
                System.out.println("Insira um numero: ");
                chute = sc.nextInt();
                if(chute == num_secreto){
                    System.out.println("Parabens você acertou o numero!");
                    break;
                }else if(chute > num_secreto){
                    System.out.println("Você errou, o numero é menor");

                }else{
                    System.out.println("Você errou, o numero é maior");
                }
                if(totalTentativas == 5){
                    System.out.println("Que pena, você perdeu o jogo!");
                }

                totalTentativas++;

            }catch (InputMismatchException error){
                System.out.println("O valor digitado deve ser um número");
                break;
                        
            }
        }


    }
}

2 respostas
solução!

Olá Henrique!

Parabéns por criar o jogo de adivinhação! Sua implementação está correta e funciona bem. Você utilizou corretamente o Random para gerar um número aleatório entre 0 e 100 e o Scanner para obter os dados do usuário.

Uma sugestão para melhorar o jogo é adicionar uma mensagem quando o usuário não acertar o número em 5 tentativas. Você pode exibir uma mensagem informando que ele perdeu o jogo. Para isso, você pode adicionar um if após o loop while para verificar se o número de tentativas chegou a 5 e exibir a mensagem adequada.

Outra sugestão é adicionar uma verificação para garantir que o usuário digite um número válido. Você já adicionou um bloco try-catch para capturar a exceção InputMismatchException, mas você pode exibir uma mensagem mais amigável para o usuário, informando que o valor digitado deve ser um número.

Aqui está o código com as sugestões implementadas:

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

public class NumeroAleatorio {
    public static void main(String[] args) {

        int num_secreto = new Random().nextInt(100);
        System.out.println("Bem vindo ao jogo de adivinhação!");
        Scanner sc = new Scanner(System.in);
        int chute = 0;
        int totalTentativas = 1;
        while (chute != num_secreto && totalTentativas <= 5) {
            try {
                System.out.println("Insira um número: ");
                chute = sc.nextInt();
                if (chute == num_secreto) {
                    System.out.println("Parabéns, você acertou o número!");
                    break;
                } else if (chute > num_secreto) {
                    System.out.println("Você errou, o número é menor");
                } else {
                    System.out.println("Você errou, o número é maior");
                }
                if (totalTentativas == 5) {
                    System.out.println("Que pena, você perdeu o jogo!");
                }

                totalTentativas++;

            } catch (InputMismatchException error) {
                System.out.println("O valor digitado deve ser um número");
                sc.nextLine(); // Limpa o buffer do Scanner
            }
        }
    }
}

Espero ter ajudado e bons estudos!

Perfeito, muito obrigado pelas sugestões!