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

[Projeto] : Jogo de Adivinhação

Olá! Aqui está minha resolução para a atividade proposta (segue algumas dúvidas no final!):

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

public class JogoDeAdivinhacao {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int numeroSecreto = new Random().nextInt(100);
        int tentativas = 0;
        int maxTentativas = 5;

        System.out.println("JOGO DE ADIVINHAÇÃO");
        System.out.println("Você terá que adivinhar o número dando um palpite de 0 a 100 em apenas 5 tentativas!");

        while (tentativas < maxTentativas) {
            System.out.println((tentativas+1) + "ª tentativa - digite um número:");
            int palpite = sc.nextInt();
            tentativas++;

            if (numeroSecreto == palpite) {
                System.out.println("Parabéns, você adivinhou o número secreto!");
                break;
            } else if (numeroSecreto < palpite) {
                System.out.println("Você errou! Tente um número menor:");
            } else {
                System.out.println("Você errou! Tente um número maior:");
            }

            if (tentativas == 5) {
                System.out.println("Você esgotou o número de tentativas. O número secreto era: " + numeroSecreto);
            }
        }
        sc.close();
    }
}

A dúvida seria que, conforme mostra na imagem abaixo do console, na 5ª tentativa ele imprime "tente um número maior", mesmo tendo esgotado as tentativas e finalizando o jogo em seguida. Como eu poderia corrigir essa saída no código? Gostaria de aproveitar tbm a oportunidade e tirar outra dúvida: de pq algumas resoluções postadas aqui no fórum possuem o valor de 101 ao invés de 100 na chamada do random, como "new Random().nextInt(101)"? Obrigado desde já!!

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

1 resposta
solução!

Boa tarde.

A dúvida seria que, conforme mostra na imagem abaixo do console, na 5ª tentativa ele imprime "tente um número maior", mesmo tendo esgotado as tentativas e finalizando o jogo em seguida. Como eu poderia corrigir essa saída no código?

Tente alterar para:

If (tentativas < 5 ) { if (numeroSecreto == palpite) { System.out.println("Parabéns, você adivinhou o número secreto!"); break; } else if (numeroSecreto < palpite) { System.out.println("Você errou! Tente um número menor:"); } else { System.out.println("Você errou! Tente um número maior:"); } } else{ System.out.println("Você esgotou o número de tentativas. O número secreto era: " + numeroSecreto); }

pq algumas resoluções postadas aqui no fórum possuem o valor de 101 ao invés de 100 na chamada do random, como "new Random().nextInt(101)"?

Ao colcoar o valor de 101, ele vai de 0 a 100. Quando você informa o valor 100 na função, ele vai de 0 a 99, o que totaliza um valor de 100 números aleatórios, porém excluindo o valor 100. Seria de interpretação. 100 números ou até o número 100.

Espero que possa ter ajudado.