✨ Cap 04: Poderes e Funções (Modularização)

🎯 Objetivo da Aula: Ao final desta aula, você entenderá o que são Funções. Você aprenderá a criar blocos de código que podem ser usados várias vezes, como uma “Habilidade Especial” que calcula o dano final de um ataque.


🏢 O Cenário Prático (Seu Desafio): No seu jogo, toda vez que um monstro é derrotado, o jogador ganha XP. Mas a conta não é simples: o XP depende do nível do monstro e se o jogador tem um “Item de Bônus”. Em vez de escrever essa conta toda hora, vamos criar um “Poder de Cálculo” que faz tudo sozinho!


🧠 Fundamentos: A Teoria Traduzida

📖 Dicionário do Programador

  • Função: É uma pequena máquina. Você coloca ingredientes (dados) nela, ela processa e te devolve um produto pronto (resultado).
  • Parâmetros (Input): São os ingredientes que a função precisa (ex: danoBase, defesaInimigo).
  • Retorno (Return): É o resultado final que a função entrega.

🎨 Nomenclatura de Funções

Funções representam Ações. Por isso, o nome deve ser um verbo:

  • calcularDano()
  • mostrarPerfil()
  • adicionarItem()
graph LR
    A[Entrada: Dano Base] --> B{Função: Aplicar Buff}
    B --> C[Saída: Dano Dobrado]

📖 Exemplo Passo a Passo: Criando o “Cálculo de Dano”

  1. Use a palavra fun para começar.
  2. Defina o que entra nos parênteses ( ).
  3. Defina o tipo que sai após os dois pontos : Int.
// 1. Criando a função (A Máquina)
fun calcularDano(ataque: Int, defesa: Int): Int {
    val resultado = ataque - defesa
    // Se o resultado for menor que zero, retornamos zero
    return if (resultado > 0) resultado else 0
}
 
fun main() {
    // 2. Usando a função (Ligando a Máquina)
    val danoFinal = calcularDano(50, 20)
    println("O dano causado foi: $danoFinal")
}

🛠️ Prática Obrigatória 1: Crie uma função chamada somarXP. Ela deve receber xpAtual (Int) e xpGanho (Int). O retorno deve ser a soma dos dois. Teste a função no main.


🛠️ Prática Obrigatória 2: Crie uma função chamada gerarNick. Ela deve receber um nome (String) e retornar o nome com a tag do clã na frente: "[PRO] Nome".


🔑 Gabarito Passo a Passo:

Exercício 1:

fun somarXP(atual: Int, ganho: Int): Int {
    return atual + ganho
}
 
fun main() {
    val total = somarXP(100, 50)
    println("Seu XP agora é: $total")
}

Exercício 2:

fun gerarNick(nome: String): String {
    return "[PRO] $nome"
}

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

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

Capitulo Anterior | Proximo Capitulo