2
respostas

[Projeto] Exercício - Jogo adivinhação

package primeiroprojeto;

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

public class JogoDeAdivinhacao {
       public static void main(String[] args) {     
          Scanner palpites = new Scanner(System.in);
         int tentativas = new Random().nextInt(100);
         int adivinhe = 0;
               
        System.out.println("JOGO DO TIGRINHO. VOCÊ TEM 3 TENTATIVAS. BOA SORTE!");
        		for (int i = 1; i<=3; i++) {
        			System.out.println("Faça a sua tentativa.");
        			adivinhe= palpites.nextInt();
        			if(adivinhe == tentativas) {
        				System.out.println("Acertou. O número é " + tentativas);
        				break;
        			} else if (adivinhe<tentativas) {
        				System.out.println("Errou, tente outra vez.");
        			}
        			else {
        				System.out.println("hahahaha tente de novo ");
        			}
        		}
            
            
          if (adivinhe!=tentativas) {
              System.out.println("Felizmente você errou todas as suas tentativas e o seu dinheiro agora é meu");
          }
          palpites.close();
       }
      
    

}
2 respostas

Tive bastante dificuldade pra fazer. Mas dentro do normal. Tentei fazer um jogo do Tigrinho como zoeira.

Mas a real que é bem complicado! Espero fazer isso com mais naturalidade. kkkkk

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. 💪 💻