Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Minha resolução do projeto

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

public class Advinhacao {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int numeroRandom = new Random().nextInt(10);


        int tentativas = 3;
        int round = 1;

        String mensagem = """
                       $$$$$$$$$$$$$$$$$$
                       JOGO DA ADVINHAÇÃO
                       $$$$$$$$$$$$$$$$$$
                       Tente descobrir o número
                """;
        System.out.println(mensagem);


       while (round <= tentativas) {
           System.out.println("Tentativas %d de %d" .formatted(round++, tentativas));
           System.out.println("Digite o número: ");
           int typeNumber = scanner.nextInt();

           if (typeNumber <= tentativas) {
               System.out.println("Número inválido, tente novamente");
               round = 1;
               continue;
           }
           if (typeNumber == numeroRandom){
               System.out.println("Parabéns,você acertou!!");
               break;
           } else if (typeNumber < numeroRandom) {
               System.out.println("Você errou, o número digitado é menor do que o número aleatório.");
           }else {
               System.out.println("Você errou, o numero digitado é maior do que o número aleatório.");
           }
           if (round > tentativas){
               System.out.println("Você perdeu!!");
                break;
           }
       }
    }
}

1 resposta
solução!

Olá Rafael, tudo bem?

Muito bom. Analisei o código que você postou e percebi um possível problema na condição do segundo if. Ao invés de comparar o número digitado com o número máximo de tentativas (que é 3), você está comparando com a variável "tentativas", que é o número máximo de tentativas menos 1.

Para corrigir isso, basta trocar a condição "if (typeNumber <= tentativas)" por "if (typeNumber > 10 || typeNumber < 0)". Dessa forma, o programa só aceitará números entre 0 e 10 (inclusive) e, caso o usuário digite um número fora desse intervalo, o programa exibirá a mensagem "Número inválido, tente novamente".

Espero ter ajudado e bons estudos!