🎲 Cap 02: Sorte e Decisão em Java (Variáveis, Operadores e Random)

🎯 Objetivo da Aula: Ao final desta aula, você vai escrever sua primeira lógica em Java: declarar variáveis com tipo, usar operadores de comparação, tomar decisões com if/else e gerar números aleatórios com java.util.Random — a base da mecânica de sorteio que você vai usar no Projeto 1.


🏢 O Cenário Prático (Seu Desafio): Antes de ligar a tela do app, todo bom programador testa a lógica isolada. Seu desafio: em um compilador Java online, escrever um método que sorteia um número entre 1 e 20 (como um dado D20) e decide se o resultado é um “Acerto Crítico”.


🧠 Fundamentos: A Teoria Traduzida

📖 Dicionário do Programador

🎨 Java vs. Kotlin: a Diferença de Sintaxe

Você vai notar que Java é mais “explícito” que o Kotlin que você verá a partir do Cap 04: o tipo vem antes do nome da variável, e toda linha termina com ;.

  Java Kotlin (a partir do Cap 04)
Declarar int vida = 100; var vida = 100
Fim de linha ; obrigatório não usa
Tipo sempre explícito, antes do nome inferido (opcional)
graph TD
    A["Random gerador = new Random()"] --> B["int numero = gerador.nextInt(20) + 1"]
    B --> C{numero == 20?}
    C -->|Sim| D["CRÍTICO!"]
    C -->|Não| E["Mostra o número normal"]

📖 Exemplo Passo a Passo: O Dado D20

Abra um compilador Java online (ex: replit.com ou onlinegdb.com) e crie um método:

import java.util.Random;

public class Main {

    public static void main(String[] args) {
        rolarD20();
    }

    public static void rolarD20() {
        // 1. Declaramos o gerador de números aleatórios
        Random gerador = new Random();

        // 2. nextInt(20) sorteia de 0 a 19 — somamos 1 para o intervalo 1 a 20
        int numero = gerador.nextInt(20) + 1;

        // 3. Decisão: 20 é sempre um Acerto Crítico
        if (numero == 20) {
            System.out.println("Resultado: " + numero + " - CRÍTICO!");
        } else {
            System.out.println("Resultado: " + numero);
        }
    }
}

🛠️ Prática Obrigatória 1: Crie o método rolarD6(). Ele deve sortear um número entre 1 e 6 (gerador.nextInt(6) + 1) e usar if/else para imprimir:


🛠️ Prática Obrigatória 2: Declare uma variável boolean temEscudo = true; e uma variável int dano = 15;. Use if/else para imprimir:


🔑 Gabarito Passo a Passo:

Exercício 1:

public static void rolarD6() {
    Random gerador = new Random();
    int numero = gerador.nextInt(6) + 1;

    if (numero == 6) {
        System.out.println("Resultado: 6 - Crítico!");
    } else if (numero == 1) {
        System.out.println("Resultado: 1 - Falha Crítica!");
    } else {
        System.out.println("Resultado: " + numero);
    }
}

Exercício 2:

boolean temEscudo = true;
int dano = 15;

if (temEscudo) {
    System.out.println("Dano bloqueado!");
} else {
    System.out.println("Você sofreu " + dano + " de dano!");
}

📤 Instruções de Entrega (Microsoft Teams):

  1. Salve seu código Java.
  2. Nomeie como: Gamer_SeuNome_Cap02.java.
  3. Envie também um print da tela do console mostrando o resultado dos seus testes.
  4. Submeta no canal de tarefas.

💡 Agora você já tem as duas peças do Projeto 1 (P01 — Dados RPG): a tela em XML/Java (Cap 01) e a lógica de sorteio em Java (este capítulo). No Cap 03 você revê variáveis — e no Cap 04, operadores — só que com a sintaxe mais compacta do Kotlin, a linguagem que você usará a partir daí.


⬅️ Voltar para a Home