🏆 Cap 03: Decisões e Ranks (if/when)

🎯 Objetivo da Aula: Ao final desta aula, você entenderá como o computador toma decisões. Você aprenderá a usar if (se) e when (quando) para criar regras de jogo, como definir se um jogador é Bronze, Prata ou Ouro.


🏢 O Cenário Prático (Seu Desafio): No seu jogo, existem categorias de jogadores baseadas no nível.

  • Nível 1 a 10: Bronze
  • Nível 11 a 20: Prata
  • Acima de 20: Ouro Seu desafio é criar um “Juiz Automático” que lê o nível e diz qual o Rank do jogador. Além disso, se a vida do jogador chegar a 0, o Juiz deve decretar “Fim de Jogo!“.

🧠 Fundamentos: A Teoria Traduzida

📖 Dicionário do Programador

  • if (se): É uma pergunta de Sim ou Não. “Se a vida é zero, o jogo acaba”.
  • else (senão): É o que acontece se a resposta do if for “Não”.
  • when (quando): É uma lista de escolhas. Como um menu de restaurante: “Quando o nível for 10, faça isso…“.

🎨 Padrão de Blocos { }

Em programação, todo o código que pertence a uma decisão deve ficar entre chaves { }. Isso diz ao computador: “Tudo o que estiver aqui dentro só acontece se a condição for verdadeira”.

graph TD
    A[Nível do Jogador] --> B{Nível > 20?}
    B -->|Sim| C[Rank: Ouro]
    B -->|Não| D{Nível > 10?}
    D -->|Sim| E[Rank: Prata]
    D -->|Não| F[Rank: Bronze]

📖 Exemplo Passo a Passo: O Juiz de Rank

  1. Declare uma variável nivel.
  2. Use o when para verificar faixas de valores usando o comando in.
fun main() {
    val nivel = 15
 
    // O WHEN é perfeito para faixas de números
    val rank = when (nivel) {
        in 1..10 -> "Bronze"
        in 11..20 -> "Prata"
        else -> "Ouro"
    }
 
    println("Seu Rank atual é: $rank")
}

🛠️ Prática Obrigatória 1: Crie uma variável pontosVida = 10. Use um if para verificar:

  • Se a vida for 0: Mostre “GAME OVER”.
  • Senão: Mostre “Você ainda está na luta!“.

🛠️ Prática Obrigatória 2: Crie uma variável classePersonagem. Use um when para exibir a arma de cada um:

  • “Guerreiro” Espada
  • “Mago” Cajado
  • “Arqueiro” Arco
  • Qualquer outro Mãos Vazias

🔑 Gabarito Passo a Passo:

Exercício 1:

fun main() {
    val pontosVida = 10
    if (pontosVida <= 0) {
        println("GAME OVER")
    } else {
        println("Você ainda está na luta!")
    }
}

Exercício 2:

fun main() {
    val classePersonagem = "Mago"
    when (classePersonagem) {
        "Guerreiro" -> println("Arma: Espada")
        "Mago" -> println("Arma: Cajado")
        "Arqueiro" -> println("Arma: Arco")
        else -> println("Arma: Mãos Vazias")
    }
}

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

  1. Salve seu código Kotlin.
  2. Nomeie como: Gamer_SeuNome_Cap03.kt.
  3. Submeta no canal de tarefas.

Capitulo Anterior | Proximo Capitulo