Enviar um café pro programador

Pode me ajudar a transformar cafeína em código?

Jogo: adivinhe o número sorteado pelo computador

Jogar é bom...mas jogar um jogo que você mesmo criou, é um prazer que poucos tem.
Criação de um jogo em Java, usando apenas um método, teste condicional if else, laço do while e as classes Scanner e Random.A linguagem de programação Java é conhecida por ser bastante usada para criação de jogos. Muito provavelmente você já jogou algum jogo, mesmo que seja aqueles online, feito em Java.

Com base nos conhecimentos obtidos em nosso curso online de Java, já é possível criarmos um jogo.
Embora bem simples, é bem engenhoso e legal:

O computador vai sortear um número, entre 1 e 1000 e você terá que adivinhar que número é esse.
A cada rodada você entra com um número e o computador vai te dar as dicas, dizendo se o número que você digitou é maior ou menor ao número que ele sorteou.

Termina quando você acerta, e ele guarda o número de tentativas que você fez. Consegue bater seu próprio record?
Sabe qual é a melhor estratégia?



PASSO 1: Computador gera um número entre 1 e 1000

Para gerar um número, necessitamos importar a classe Random:
import java.util.Random;

Precisamos criar um objeto do tipo Random para que ele possa gerar os números, vamos chamar de 'geradorDeAleatorios':
Random geradorDeAleatorios = new Random();

Agora precisamos que esse gerador nos forneça um número aleatório no intervalo de 1000 números. Vamos armazenas esse valor na variável inteira 'sorteado':
sorteado = geradorDeAleatorios.nextInt(1000);

Porém, dessa maneira, ele vai gerar um número entre 0 e 999. Para ser entre 1 e 1000, somamos 1:
sorteado = geradorDeAleatorios.nextInt(1000) + 1;

PASSO 2: looping principal do programa

Número gerado!
Agora o usuário vai dar os palpites. Como o usuário vai tentar adivinhar o número pelo menos uma vez, o looping precisa rodar pelo menos uma vez. Portanto, usamos o do ... while.

Esse laço ocorre enquanto não adivinharmos o número, ou seja, enquanto nosso palpite for diferente do número sorteado:
do{
 // laço
}while( palpite != sorteado);

PASSO 3: tentativa incrementada

A cada tentativa que damos, a variável 'tentativas', que contabiliza nossas tentativas é incrementada em uma unidade:
tentativas++;


PASSO 4: analisando o palpite

Vamos mandar 3 números para o método dica(): o nosso palpite, o número sorteado pelo computador e o número de tentativas que fizemos.
Para o nosso jogo dar a dica certa, usaremos os testes condicionais if else.

O método testa se o nosso palpite foi maior que o número gerado pelo computador, se for, dá tal dica:
if(palpite > numero){
System.out.println("Seu palpite é maior que o número sorteado.");

Case não seja, o palpite será menor ou igual ao número sorteado. Então vai pro else.
Caso o palpite do usuário seja menor que o número sorteado pelo computador, tal dica é exibida:
if(palpite < numero){
System.out.println("Seu palpite é menor que o número sorteado.");

Por fim, se o palpite não for maior nem menor que o número sorteado é porque é igual.
Ora, se é igual, você acertou e é exibida a mensagem de acerto e o número de tentativas realizadas:
System.out.println("Parabéns, você acertou! O número era " + numero);
System.out.println("Você tentou " + tentativas + " vezes antes de acertar!");

Quando você acerta, o método dica não é mais chamado, pois 'palpite != sorteado' retornará um valor falso, já que estes números serão iguais (palpite = sorteado), então o laço acaba, acabando o nosso jogo em Java.

Nosso jogo/aplicativo Java ficará assim:


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

public class JogoAdivinhaNumero {

    public static void dica(int palpite, int numero, int tentativas){
        if(palpite > numero){
            System.out.println("Seu palpite é maior que o número sorteado.");
        } else {
            if(palpite < numero){
                    System.out.println("Seu palpite é menor que o número sorteado.");
            } else {
                System.out.println("Parabéns, você acertou! O número era " + numero);
                System.out.println("Você tentou " + tentativas + " vezes antes de acertar!");
            }
        }
            
    }
    
    public static void main(String[] args) {
        int palpite=0, 
            sorteado, 
            tentativas=0;
        
        Scanner entrada = new Scanner(System.in);
        
        Random geradorDeAleatorios = new Random();
        sorteado = geradorDeAleatorios.nextInt(1000) + 1;
        System.out.println("Número entre 1 e 1000 sorteado!");
        
        do{
            System.out.printf("\n\n\n\n-----------------\n");
            System.out.println("Número de tentativas: " + tentativas);
            
            System.out.print("Qual seu palpite: ");
            palpite = entrada.nextInt();
            
            tentativas++;
            
            dica(palpite,sorteado, tentativas);
        }while (palpite != sorteado);

    }

}


Contribuir com o Java Progressivo

Que tal apoiar e fazer crescer o ensino da programação no Brasil ?

Ajudar nosso país a crescer e se desenvolver cada vez mais, tecnologicamente?

Clica abaixo pra saber mais!

Apoiar o Projeto Progressivo


Tutoriais de Java