1
resposta

[Projeto] Resolução do Desafio - Jogo de adivinhação

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

public class adivinhacao {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int numero = new Random().nextInt(100);
        int tentativa = 1;
        int chute = 0;

        System.out.println(numero);

        String boasVindas = String.format("""
                Bem vindo ao jodo de adivinhação
                O programa vai pensar em um numero e você tem 5 chances de acetar o numero que pensamos, OK ?
                A cada tentativa, vamos te falar se o numero que você chutou é maior ou menor do que estamos pensando.
                
                Vamos nessa ?""");

        String msgDigite = String.format("Digite um numero de 0 a 100");

        String msgNumeroInvalido = String.format("Digite apenas numeros inteiros entre 0 e 100");

        String msgFimTentativas = String.format("Fim das tentativas.");

        String msgNumeroCorreto = String.format("Você acertou !!!");

        String msgChuteMaior = String.format("Seu chute foi maior do que o numero que pensamos.");
        String msgChuteMenor = String.format("Seu chute foi menor do que o numero que pensamos.");

        System.out.println(boasVindas);

        do {
            String msgTentativa = String.format("Vamos para a sua tentativa nº %d", tentativa);
            System.out.println(msgTentativa);
            System.out.println(msgDigite);

            try{
                String strChute = sc.nextLine();
                chute = Integer.parseInt(strChute);

                if(chute > 100){
                    System.out.println(msgNumeroInvalido);
                } else {

                    if(chute == numero){
                        System.out.println(msgNumeroCorreto);
                        break;
                    }

                    if(chute < numero){
                        System.out.println(msgChuteMenor);
                    }

                    if(chute > numero){
                        System.out.println(msgChuteMaior);
                    }
                }

                tentativa++;

            } catch (NumberFormatException e){
                System.out.println(msgNumeroInvalido);
            }

        } while(tentativa <= 5);

        if(chute != numero){
            System.out.println(msgFimTentativas);
        }
    }
}
1 resposta

Olá, Danilo, como vai?

Seu código está muito bem estruturado e organizado. É ótimo ver que você utilizou as boas práticas aprendidas no curso para resolver o desafio. O uso do laço de repetição do-while é uma escolha adequada para a lógica do jogo, já que o corpo do laço precisa ser executado pelo menos uma vez.

A implementação da contagem de tentativas, a verificação se o chute é maior ou menor que o número secreto, e a interrupção do laço com break quando o número é adivinhado estão corretas. A utilização de um bloco try-catch para tratar possíveis erros de formato de número é uma prática excelente e mostra um cuidado com a robustez da sua aplicação.

Parabéns pelo seu empenho e pela ótima resolução do desafio. Continue praticando e explorando novos conceitos. O fórum está sempre à disposição para outras dúvidas ou para você compartilhar novos projetos.

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