1
resposta

[Projeto] Desafio - Jogo de Adivinhação: Minha solução

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

/* Agora é com você! Pratique os conceitos que foram ensinados ao longo dessa aula com o seguinte desafio: Crie um programa que simula um jogo de adivinhação, que deve gerar um número aleatório entre 0 e 100 e pedir para que o usuário tente adivinhar o número, em até 5 tentativas. A cada tentativa, o programa deve informar se o número digitado pelo usuário é maior ou menor do que o número gerado.

Dicas:

Para gerar um número aleatório em Java: new Random().nextInt(100); Utilize o Scanner para obter os dados do usuário; Utilize uma variável para contar as tentativas; Utilize um loop para controlar as tentativas; Utilize a instrução break; para interromper o loop. */ public class JogoDeAdvinhacao { public static void main(String[] args) {

    int numeroSecreto = new Random().nextInt(100);
    Scanner scanner = new Scanner(System.in);
    int contadorDeTentativas = 0;
    int numeroInformado = 0;
    for (int i = 0; i < 5; i++) {
        System.out.println("Digite um número entre 0 e 100 para tentar advinhar o número secreto = ");
        numeroInformado = scanner.nextInt();
        if (numeroInformado == numeroSecreto){
            System.out.println("Parabéns, você acertou o número secreto = " + numeroSecreto);
            break;
        }else {
            System.out.println("Você errou, tente novamente");
            contadorDeTentativas++;
            if (numeroSecreto > numeroInformado){
                System.out.println("O número secreto é maior que o informado");
            }else {
                System.out.println("O número secreto é menor que o informado");

            }

        }


    }


}

}

1 resposta

Olá Edilson! Tudo bem?

Seu código para o jogo de adivinhação está quase perfeito! Você já implementou a maioria dos requisitos do desafio. No entanto, notei que você está usando a variável contadorDeTentativas para contar as tentativas, mas não está utilizando essa variável para controlar o loop, já que o loop for já está limitado a 5 tentativas. Portanto, a variável contadorDeTentativas não é necessária nesse caso, a menos que você queira usá-la para alguma outra finalidade, como exibir o número de tentativas restantes.

Aqui está uma pequena sugestão de melhoria: você pode informar ao usuário quantas tentativas restam a cada rodada. Isso pode ser feito facilmente utilizando a variável i do loop for. Veja como você pode fazer isso:

public class JogoDeAdvinhacao {
    public static void main(String[] args) {

        int numeroSecreto = new Random().nextInt(100);
        Scanner scanner = new Scanner(System.in);
        int numeroInformado = 0;

        for (int i = 0; i < 5; i++) {
            System.out.println("Tentativa " + (i + 1) + " de 5: Digite um número entre 0 e 100 para tentar advinhar o número secreto = ");
            numeroInformado = scanner.nextInt();
            if (numeroInformado == numeroSecreto) {
                System.out.println("Parabéns, você acertou o número secreto = " + numeroSecreto);
                break;
            } else {
                System.out.println("Você errou, tente novamente");
                if (numeroSecreto > numeroInformado) {
                    System.out.println("O número secreto é maior que o informado");
                } else {
                    System.out.println("O número secreto é menor que o informado");
                }
            }
        }
        scanner.close();
    }
}

Além disso, é sempre uma boa prática fechar o objeto Scanner após o seu uso, como fiz acima com scanner.close();.

Bons estudos!