1
resposta

[Sugestão] Fiz de duas maneiras

Fiz de duas formas diferentes, na primeira o computador vai mudando o número aleatório dentro das 5 tentativas, a cada tentativa ele gera um número novo que você tenta acertar. tendo somente 1 uma tentativa tecnicamente.

Da segunda maneira, ele gera somente um número aleatório e você possui 5 tentativas para acerta-lo

-> primeira forma:

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

public class JogoAdivinhacao {
    public static void main(String[] args) {
        Scanner JogoAdivinhacao = new Scanner(System.in);

        int numeroAleatorio;
        int numeroDoUsuario;
        int tentativas=0;

        System.out.println("-----Jogo da Adivinhação----");

        System.out.println("\nAdivinhe o núemro aleatório escolhido pelo computador");

        while(tentativas<5) {

            numeroAleatorio = new Random().nextInt(100);

            System.out.println("\nDigite o número: ");
            numeroDoUsuario = JogoAdivinhacao.nextInt();

            tentativas++;

            if (numeroDoUsuario == numeroAleatorio) {
                System.out.println("Parábens você acertou! ");
                System.out.println(String.format("Seu número: %d e o número escolhido pelo o computador: %d ",numeroDoUsuario,numeroAleatorio));
                break;
            }else{
                System.out.println(String.format("Você errou, o núemro aleatório era: %d", numeroAleatorio));
            }


        }
    }
}

->Segunda forma:

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

public class JogoAdivinhacao {
    public static void main(String[] args) {
        Scanner JogoAdivinhacao = new Scanner(System.in);

        int numeroAleatorio;
        int numeroDoUsuario;
        int tentativas=0;
        numeroAleatorio = new Random().nextInt(100);
        System.out.println("-----Jogo da Adivinhação----");

        System.out.println("\nAdivinhe o núemro aleatório escolhido pelo computador");

        while(tentativas<5) {



            System.out.println("\nDigite o número: ");
            numeroDoUsuario = JogoAdivinhacao.nextInt();

            tentativas++;

            if (numeroDoUsuario == numeroAleatorio) {
                System.out.println("Parábens você acertou! ");
                System.out.println(String.format("Seu número: %d e o número escolhido pelo o computador: %d ",numeroDoUsuario,numeroAleatorio));
                break;
            }else{
                System.out.println("Você errou!");
            }


        }
    }
}
1 resposta

Oii, Andressa, tudo bem?

Muito legal sua iniciativa de testar diferentes lógicas para o mesmo problema. Essa curiosidade ajuda muito no aprendizado.

A sua segunda forma é a que melhor atende ao proposto no desafio, pois o número aleatório é gerado apenas uma vez antes do laço de repetição (while). Isso faz com que o jogador tente adivinhar o mesmo número usando a lógica.

Na primeira forma, como você colocou a geração do número (new Random().nextInt(100)) dentro do laço while, o "alvo" muda a cada tentativa. Isso transforma o jogo em algo puramente baseado na sorte, pois as tentativas anteriores não servem como base para a próxima.

Continue firme nos estudos.

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