Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

1
resposta

[Projeto] Jogo De Adivinhação.

Como sei que o número de tentativas é limitado, no caso, sei quantas vezes irá repetir, achei mais interessante usar a estrutura for junto a estrutura do else-if com operador ternário.

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

public class App {
    public static void main(String[] args) throws Exception {
        Scanner scanner = new Scanner(System.in);
        System.out.println("Jogo de adivinhação!");

        int numeroAleatorio = new Random().nextInt(100);
        System.out.println("Número aleatório gerado de 0 a 100!");
        

        for (int i = 1; i <= 5; i++) {
            
            System.out.print("Digite um número: ");
            int numeroDigitado = scanner.nextInt();

            if(numeroDigitado == numeroAleatorio) {
                System.out.println("Parabéns, número encontrado!");
                break;
            } else if(i == 5) {
                System.out.println(String.format("Infelizmente o número %d não foi encontrado", numeroAleatorio));
            } else {
                String resultado = numeroDigitado > numeroAleatorio ? "O número digitado é maior que o número gerado" : "O número digitado é menor que o número gerado";
                System.out.println(resultado);
            }
            
        }

        scanner.close();
    
    }
}

1 resposta

Olá, Raphael. Tudo bem com você?

Obrigado por compartilhar sua solução para o jogo de adivinhação. Sua escolha de utilizar um for faz bastante sentido nesse contexto, já que a quantidade de tentativas é conhecida desde o início da aplicação. Além disso, a combinação do else if com o operador ternário deixou a lógica objetiva e fácil de acompanhar, mantendo o código organizado.

O número aleatório é gerado, o usuário possui até cinco tentativas, a comparação entre o valor informado e o número gerado está correta, e o uso do break encerra o laço assim que o jogador acerta. Também foi uma boa prática fechar o Scanner ao final da execução.

Como sugestão de evolução, você pode exibir a tentativa atual durante o jogo, por exemplo, "Tentativa 2 de 5", tornando a interação mais clara para o usuário. Outra possibilidade é informar quantas tentativas restavam quando o jogador acertar, deixando a experiência um pouco mais completa sem alterar a lógica principal do exercício.

Se você fosse expandir esse jogo, qual funcionalidade adicionaria primeiro, como um sistema de pontuação, diferentes níveis de dificuldade ou a opção de jogar novamente?

Parabéns pela implementação e por compartilhar sua solução. O fórum continua à disposição sempre que precisar.

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