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

Desafio! Jogo de Adivinhação.

import java.util.Scanner;

class JogoDaAdvinhacao {
    public static void main(String[] args) {
        Scanner numberUser = new Scanner(System.in);
        boolean winner = false;

        for(int tryAgain = 5; tryAgain > 0; tryAgain--){

            System.out.println( "Você possui " + tryAgain + " tentativa(s)");

            double secretNumber = (int) (Math.random() * 100) + 1;
            int convertNumber = (int) secretNumber;

            System.out.println("Digite um Número de 0 a 100: ");
            int n = numberUser.nextInt();

            if (n == secretNumber) {
                System.out.println("Parabéns! você acertou o número secreto " + convertNumber + " com" + tryAgain + "tentativas.");
                winner = true;
                break;

            } else if (n != secretNumber){
                if (n < secretNumber){

                    System.out.println("O número secreto é maior que " + n + ".");

                }else if (n > secretNumber) {

                    System.out.println("O número secreto é menor que " + n + ".");
                }
            }
        }
        if(!winner){
            System.out.println("Fim de Jogo!");
        }
    }
}

Matricule-se agora e aproveite até 50% OFF

O maior desconto do ano para você evoluir com a maior escola de tecnologia

QUERO APROVEITAR
2 respostas
solução!

Oi, kevin! Como vai?

Com base no que você explicou, um ponto que chama atenção é que o número secreto está sendo gerado dentro do loop, fazendo com que ele mude a cada tentativa, o que torna quase impossível vencer. Ajustar isso ajuda bastante no fluxo do jogo.

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

eu realmente não tinha prestado atenção nesse fato, muito obrigado por mostrar, vou me atentar a isso muito obrigado pela dica.

CÓDIGO CORRIGIDO:

import java.util.Scanner;

class JogoDaAdvinhacao {
    public static void main(String[] args) {
        Scanner numberUser = new Scanner(System.in);
        boolean winner = false;
        double secretNumber = (int) (Math.random() * 100) + 1;
        int convertNumber = (int) secretNumber;
        int tentativas = 0;

        for(int tryAgain = 5; tryAgain > 0; tryAgain--){

            System.out.println( "Você possui " + tryAgain + " tentativa(s)");

            System.out.println("Digite um Número de 0 a 100: ");
            int n = numberUser.nextInt();
            tentativas++;
            String palavraTentativa = tentativas > 1 ? " tentativas!" : " tentativa!";

            if (n == secretNumber) {
                System.out.println("Parabéns! você acertou o número secreto  '" + convertNumber + "' com " + tentativas + palavraTentativa);
                winner = true;
                break;

            } else if (n != secretNumber){
                if (n < secretNumber){

                    System.out.println("O número secreto é maior que " + n + ".");

                }else if (n > secretNumber) {

                    System.out.println("O número secreto é menor que " + n + ".");
                }
            }
        }
        if(!winner){
            System.out.println("Fim de Jogo!");
        }
    }
}

PS.: Aproveitei e acrescentei a 'String palavraTentativa'