✨ Cap 06: 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”
- Use a palavra
funpara começar. - Defina o que entra nos parênteses
( ). - 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):
- Salve seu código Kotlin.
- Nomeie como:
Gamer_SeuNome_Cap06.kt. - Submeta no canal de tarefas.