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

[Projeto] Adivinhação

Olá, boa noite! Quero compartilhar a minha solução do projeto proposto. Gostaria também de pedir sugestões de melhorias e aceito criticas construtivas.

Desde já peço auxilio para o uso do braeak, pois tentei utiliza-lo, mas parece que não foi lido e também estou acertando o numero em todas as tentativas e não consegui enxergar o erro.

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



        int numberChuteAletório = new Random().nextInt(100);
        System.out.println(numberChuteAletório);

        System.out.println("Esolha um número de zero à 1000!Você tem cinco Tentativas!");

        boolean chute = true;
        int  tentativa =1;

        

        while ( tentativa <= 5){
            System.out.println("Vamos começar? Faça o seu primeiro chute:");
            int chuteUser = jogo.nextInt();
        if( chuteUser == numberChuteAletório) {
            chute = true;
            break;
        } tentativa++;
        if(chute){
            System.out.println("Muito bem! Você conseguiu!e foi na sua tentativa numero: " +tentativa);
        } else{
            System.out.println("Não foi dessa vez! Mas não desista!");
        } if (chuteUser < 0 || chuteUser > numberChuteAletório){
                System.out.println("Os numero válidos de 0 à 100! Escolha um novo numero!");
            }



        }
    }
}
1 resposta
solução!

Olá Ândria, tudo bem?

Primeiramente, parabéns por compartilhar a sua solução do projeto e por estar aberta a sugestões de melhorias e críticas construtivas. É muito importante buscar sempre aprimorar o nosso código :)

Quanto à sua dúvida sobre o uso do break, percebi que você está utilizando corretamente dentro do if quando o chute do usuário é igual ao número aleatório. O break faz com que o programa saia do loop while quando essa condição é satisfeita.

No entanto, você está declarando a variável chute como true antes do loop e não a está atualizando corretamente dentro do if. Isso faz com que a mensagem de acerto seja exibida mesmo quando o usuário não acerta o número. Para corrigir isso, sugiro que você declare a variável chute como false antes do loop e atualize-a para true apenas quando o chute for correto.

Além disso, você está imprimindo a mensagem de acerto dentro do loop, o que faz com que ela seja exibida a cada tentativa, mesmo que o usuário já tenha acertado. Para resolver isso, você pode mover a impressão da mensagem de acerto para fora do loop, logo após o break.

Quanto à validação do chute do usuário, você está verificando se o chute é menor que 0 ou maior que o número aleatório. No entanto, acredito que a condição correta seria verificar se o chute é menor que 0 ou maior que 100, já que o número aleatório varia de 0 a 100. Portanto, sugiro que você atualize essa condição.

Aqui está o código corrigido:

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

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

        int numberChuteAletório = new Random().nextInt(100);
        System.out.println(numberChuteAletório);

        System.out.println("Escolha um número de zero a 100! Você tem cinco tentativas!");

        boolean chute = false;
        int tentativa = 1;

        while (tentativa <= 5) {
            System.out.println("Vamos começar? Faça o seu primeiro chute:");
            int chuteUser = jogo.nextInt();

            if (chuteUser == numberChuteAletório) {
                chute = true;
                break;
            }

            tentativa++;

            if (chuteUser < 0 || chuteUser > 100) {
                System.out.println("Os números válidos são de 0 a 100! Escolha um novo número!");
            }
        }

        if (chute) {
            System.out.println("Muito bem! Você conseguiu! Foi na sua tentativa número: " + tentativa);
        } else {
            System.out.println("Não foi dessa vez! Mas não desista!");
        }
    }
}

Se tiver mais alguma dúvida, é só perguntar. Bons estudos!