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

[Projeto] [Projeto] [Solução] Jogo de Adivinhação by: CaioCesarP

Minha solução para o jogo.

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

public class findTheSecret {

    public static void closeTo(int secret, int guess) {
        if (guess == -1) {
            return;
        }

        if (guess > secret) {
            System.out.println(String.format("O valor secreto é menor que %d", guess));
        }

        if (guess < secret) {
            System.out.println(String.format("O valor secreto é maior que %d", guess));
        }

    }

    public static void main(String[] args) {
        int chance = 5;
        System.out.println(String.format("Descubra o valor secreto, você tem %d chances...", chance));

        int range = 100;
        int secret = new Random().nextInt(range);
        System.out.println(String.format("Valor secreto está em um raio de 0 e %d", range));

        try (Scanner read = new Scanner(System.in)) {
            int guess = -1;
            while (chance > 0) {
                if (guess == secret) {
                    System.out.println("Parabéns você acertou!!!");
                    break;
                }

                closeTo(secret, guess);

                System.out.println(String.format("Chute de número %d:", chance));
                guess = read.nextInt();
                chance--;
            }

            if (guess != secret) {
                System.out.println(String.format("Você perdeu, o valor secreto era %d.", secret));
            }
        } catch (Exception error) {
            System.err.println(error.getMessage());
        }

    }
}
1 resposta
solução!

Olá, Caio! Tudo bem com você?

Que ótimo, seu código está bem organizado! Parabéns pela resolução da atividade, continue firme nos estudos em Java! ^^

Uma solução alternativa para o desafio é a seguinte:

public class JogoAdivinhacao {

    public static void main(String[] args) {
        Scanner leitor = new Scanner(System.in);
        int numeroGerado = new Random().nextInt(100); // gera um número aleatório entre 0 e 100
        int tentativas = 0;

        while (tentativas < 5) {
            System.out.print("Digite um número entre 0 e 100: ");
            int numeroDigitado = leitor.nextInt();
            tentativas++;

            if (numeroDigitado == numeroGerado) {
                System.out.println("Parabéns, você acertou o número em " + tentativas + " tentativas!");
                break; // interrompe o loop while
            } else if (numeroDigitado < numeroGerado) {
                System.out.println("O número digitado é menor que o número gerado.");
            } else {
                System.out.println("O número digitado é maior que o número gerado.");
            }
        }

        if (tentativas == 5) {
            System.out.println("Você não conseguiu adivinhar o número em 5 tentativas. O número era " + numeroGerado);
        }
    }
}

Qualquer dúvida, estamos sempre por aqui!

Bons estudos!