Olá Hallyson!
Parabéns pela iniciativa de criar um jogo. 👍
Vou ajudar você a melhorar seu código com algumas sugestões importantes.
Análise do Código
O código tem uma boa base, mas apresenta alguns pontos que podem ser melhorados:
- A variável 'tentativas' tem um nome confuso
- Falta informar ao usuário o intervalo de números possíveis
- As mensagens poderiam ser mais informativas
- Não há tratamento de entrada inválida
- O fechamento do Scanner poderia ser mais seguro
Código Melhorado 🐯
package primeiroprojeto;
import java.util.Random;
import java.util.Scanner;
public class JogoDoTigrinho {
public static void main(String[] args) {
Scanner scanner = null;
try {
scanner = new Scanner(System.in);
int numeroSecreto = new Random().nextInt(100);
int tentativaUsuario = 0;
int tentativasRestantes = 3;
System.out.println("=== JOGO DO TIGRINHO ===");
System.out.println("Tente adivinhar um número entre 0 e 99");
System.out.println("Você tem 3 tentativas. Boa sorte!\n");
while (tentativasRestantes > 0) {
System.out.printf("Tentativa %d de 3. Digite um número: ", 4 - tentativasRestantes);
try {
tentativaUsuario = scanner.nextInt();
if (tentativaUsuario < 0 || tentativaUsuario > 99) {
System.out.println("Por favor, digite um número entre 0 e 99!");
continue;
}
if (tentativaUsuario == numeroSecreto) {
System.out.println("\nPARABÉNS! Você acertou o número " + numeroSecreto + "!");
return;
} else {
String dica = tentativaUsuario < numeroSecreto ? "maior" : "menor";
System.out.println("Errou! O número secreto é " + dica + " que " + tentativaUsuario);
tentativasRestantes--;
}
} catch (Exception e) {
System.out.println("Digite apenas números!");
scanner.nextLine(); // limpa o buffer
}
}
System.out.println("\nGame Over! O número secreto era: " + numeroSecreto);
System.out.println("O tigre ganhou dessa vez!");
} finally {
if (scanner != null) {
scanner.close();
}
}
}
}
Melhorias Implementadas
Estrutura e Clareza
- Renomeei as variáveis para nomes mais descritivos
- Adicionei mensagens mais claras e informativas
- Implementei um sistema de dicas (maior/menor)
Tratamento de Erros
- Adicionei verificação de números fora do intervalo
- Implementei try-catch para entradas inválidas
- Incluí o fechamento do Scanner em um bloco finally
Interface do Usuário
- Melhorei a formatação das mensagens
- Adicionei contador de tentativas mais claro
Continue praticando e experimentando novas funcionalidades! Com o tempo, a programação ficará mais natural. 💪 💻