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

[Projeto] Jogo da Adivinhação by: Gabriel Becker Nunes

Sinta-se a vontade para dar sua sugestão!

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

public class JogoDaAdivinhacao{
    public static void main(String ... args){
        //instanciando objetos
        Scanner leitura = new Scanner(System.in);
        Random gerador = new Random();
        //definindo variáveis
        int numeroMisterioso = gerador.nextInt(100);
        int numero;

        System.out.println("Adivinhe o número entre 1 e 100 em cinco tentativas");
        
        for(int i = 5; i >= 1; i-- ) {
            //lendo variável número
            numero = leitura.nextInt();
            //tentativas de 5 a 2 devem gerar mensagem com 'tente de novo'
            if(i != 1){
                if(numero < numeroMisterioso){
                    System.out.println("O número misterioso é maior, tente de novo");
                } else if(numero > numeroMisterioso){
                    System.out.println("O número misterioso é menor, tente de novo");
                } else if(numero == numeroMisterioso){
                    System.out.println("Parábens, você acertou, o número misterioso era " + numeroMisterioso);
                    break;
                } else{
                    System.out.println("Esse não é um número válido");
                }
            }
            //na última tentativa as frases não devem gerar mensagem com 'tente de novo'
            else{
                if(numero == numeroMisterioso){
                    System.out.println("Parábens, você acertou, o número misterioso era " + numeroMisterioso);
                    break;
                } else{
                    System.out.println("Que pena, você errou, o número misterioso era " + numeroMisterioso);
                }
            }
        }
    }
}
'''
1 resposta
solução!

Olá, Gabriel!

Parabéns pelo projeto, ficou bem legal! Mandou bem!

Sobre sugestões para melhorias, você pode utilizar um loop while ao invés do for, assim você não precisa definir um número fixo de tentativas. Além disso, podemos adicionar uma mensagem de erro caso o número digitado pelo usuário não esteja dentro do intervalo válido.

Aqui está uma versão melhorada do seu código:

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

public class JogoDaAdivinhacao {
    public static void main(String ... args) {
        Scanner leitura = new Scanner(System.in);
        Random gerador = new Random();
        int numeroMisterioso = gerador.nextInt(100);
        int numero;
        int tentativas = 0;

        System.out.println("Adivinhe o número entre 1 e 100 em até 5 tentativas");

        while (tentativas < 5) {
            numero = leitura.nextInt();
            tentativas++;

            if (numero < 1 || numero > 100) {
                System.out.println("Digite um número válido entre 1 e 100");
                continue;
            }

            if (numero < numeroMisterioso) {
                System.out.println("O número misterioso é maior, tente novamente");
            } else if (numero > numeroMisterioso) {
                System.out.println("O número misterioso é menor, tente novamente");
            } else {
                System.out.println("Parabéns, você acertou! O número misterioso era " + numeroMisterioso);
                break;
            }
        }

        if (tentativas == 5) {
            System.out.println("Que pena, você não acertou. O número misterioso era " + numeroMisterioso);
        }
    }
}

Nessa versão, utilizamos um loop while para controlar as tentativas, e a variável tentativas para contar quantas vezes o usuário tentou adivinhar o número. Também adicionamos uma verificação para garantir que o número digitado esteja dentro do intervalo válido.

Espero ter ajudado e bons estudos!