3
respostas

Minha versão da resposta.

package ex;

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

public class RandGame {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int start;
        int guesses = 0;
        int randNum = new Random().nextInt(10);
        int playerGuess = -1;

        System.out.println("Programa de adivinhação. Escreva 1 para jogar e 0 para encerrar.");
        start = scanner.nextInt();

        if (start == 1) {
            while (playerGuess != randNum) {
                System.out.println("Escolha um número de 0 a 10!");
                playerGuess = scanner.nextInt();
                guesses++;
                if (playerGuess == randNum){
                    System.out.println(String.format("Você acertou o número secreto em %d tentativas.", guesses));
                    start = 0;
                }
            } 
        }

        else if (start == 0) {
            System.out.println("Programa encerrado.");
        }
        else {
            System.out.println("Erro! Comando não encontrado.");
        }
    }
}
3 respostas

Bom dia Diogo, tudo bem?

Parabéns, a aplicação está funcionando, porém tente aplicar as seguintes melhorias:

1 - Ao usuário exceder 5 tentativas a aplicação não solicitar mais outra tentativa, dando uma mensagem tipo "Game Over" 2 - Ao realizar uma tentativa de acertar o número e errar a aplicação informar se o número é maior ou menor.

Espero ter ajudado. Obrigado pela atenção.

Feito! Espero estar funcionando perfeitamente.

package rndm_game;

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

public class RandGame {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int start;
        int guesses = 0;
        int randNum = new Random().nextInt(10);
        int playerGuess = -1;

        System.out.println("Programa de adivinhação. Escreva 1 para jogar e 0 para encerrar.");
        start = scanner.nextInt();

        if (start == 1) {
            System.out.println("Você tem 5 tentativas para acertar o número.");
            while (playerGuess != randNum && guesses != 5) {
                System.out.println(String.format("Tentativa %d", guesses + 1));
                System.out.println("Escolha um número de 0 a 10!");
                playerGuess = scanner.nextInt();
                guesses++;
                if (playerGuess == randNum){
                    System.out.println(String.format("Você acertou o número secreto em %d tentativas.", guesses));
                    start = 0;
                } else if (playerGuess < randNum){
                    System.out.println(String.format("O número secreto é maior do que %d.", playerGuess));
                } else {
                    System.out.println(String.format("O número secreto é menor do que %d.", playerGuess));
                }
            }
            System.out.println("Game over!."); 
        }
        else if (start == 0) {
            System.out.println("Programa encerrado.");
        }
        else {
            System.out.println("Erro! Comando não encontrado.");
        }

        scanner.close();
    }
}

Parabéns Diogo,

Agora apenas mais um ponto. Eu acertei o número na minha 4ª tentativa, e tive a resposta:

"Você acertou o número secreto em 4 tentativas. Game over!."

Seria interessante ter a mensagem de "Game Over" apenas caso não consiga acertar o número. E caso consiga, receber um "You Win" ou uma mensagem da sua preferencia.

Obrigado pela atenção. Att:

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software