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

Desafio Jogo de adivinhação.

Está correta a maneira que fiz? Como posso melhorar meu código??

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

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

        Scanner dados = new Scanner(System.in);
        int numeroAleatorio = new Random().nextInt(100);
        String mensagem1 = """
                Adivinhe o número que estou pensando!!!
                Você tem 5 tentativas...
                """;
        int numeroTentativas = 1;

        System.out.println(mensagem1);

        for (int tentativas = 0; tentativas < 5 ; tentativas++) {

            int chute = dados.nextInt();

            if (chute == numeroAleatorio) {
                System.out.println("Parabéns você acertou!!!");
                break;
            }

            if (chute > numeroAleatorio) {
                System.out.println("É menor, tente novamente...");
            }

            if (chute < numeroAleatorio) {
                System.out.println("É maior, tente novamente...");
            }

            numeroTentativas++;

        }
        System.out.println("Você gastou " + numeroTentativas + " tentativas.");
    }
}
4 respostas
solução!

Olá, Messias!

Seu código parece estar bem estruturado e segue as diretrizes do desafio proposto. Parabéns!

No entanto, há algumas sugestões que eu gostaria de compartilhar para que você possa melhorar ainda mais seu código:

  1. Mensagens de feedback ao usuário: Ao invés de imprimir a mensagem "É menor, tente novamente..." ou "É maior, tente novamente..." após cada tentativa, você poderia incluir o número da tentativa na mensagem para tornar a interação mais personalizada. Algo como:
System.out.println("Tentativa " + (tentativas + 1) + ": É menor, tente novamente...");

e

System.out.println("Tentativa " + (tentativas + 1) + ": É maior, tente novamente...");
  1. Controle de tentativas: Sua variável numeroTentativas está sendo incrementada mesmo após o usuário acertar o número. Para evitar isso, você pode colocar o incremento de numeroTentativas antes do break no bloco de código que verifica se o usuário acertou o número. Assim:
if (chute == numeroAleatorio) {
    numeroTentativas++;
    System.out.println("Parabéns você acertou!!!");
    break;
}
  1. Encerramento do Scanner: É uma boa prática fechar o Scanner quando ele não está mais sendo usado. Portanto, você pode adicionar dados.close(); ao final do seu código.

Lembrando que são apenas sugestões e seu código já está funcionando bem de acordo com o que foi pedido no desafio.

Espero ter ajudado e bons estudos!

Renan tenho uma pergunta que não tem muito haver com o tópico, você recomenda a leitura de algum livro sobre Java para um iniciante como eu??

Claro Messias! Vou deixar aqui três sugestões de livros conhecidos e bons para iniciante em Java:

"Java: Como Programar" (Java: How to Program), de Paul Deitel e Harvey Deitel: Este livro é amplamente utilizado em cursos introdutórios de programação Java. Ele cobre os conceitos básicos da linguagem Java, desde o início, e inclui muitos exemplos práticos.

"Use a Cabeça! Java" (Head First Java), de Kathy Sierra e Bert Bates: Este livro é conhecido por seu estilo de escrita envolvente e abordagem prática. É uma escolha popular para iniciantes, pois usa muitos recursos visuais e analogias para tornar os conceitos mais compreensíveis.

"Java para Iniciantes" (Java for Beginners), de Budi Kurniawan: Este livro se concentra em conceitos fundamentais de Java, tornando-o adequado para iniciantes. Ele aborda tópicos como tipos de dados, estruturas de controle, classes e objetos, além de fornecer exemplos de código.

O legal é você ler e praticar os conceitos, escrevendo seus próorios códigos :)

Obrigado :D