🧩 Exercícios - Cap 06: Poderes e Funções (Modularização)
🎯 Antes de começar
No Cap 06 você criou a função calcularDano(ataque: Int, defesa: Int): Int e, nas Práticas Obrigatórias, somarXP e gerarNick. Depois de completar as duas Práticas, faça o exercício extra abaixo para conhecer parâmetros com valor padrão e ver uma função chamando outra.
💪 Exercício Extra 1: Função com Valor Padrão — aplicarBuff (15 min)
Objetivo: Praticar parâmetros com valor padrão (= 1.5) e a composição de funções (uma função usando o resultado de outra).
Passos:
- No Kotlin Playground, copie a função
calcularDanodo exemplo do capítulo. - Crie uma nova função:
fun aplicarBuff(dano: Int, multiplicador: Double = 1.5): Int { return (dano * multiplicador).toInt() } - No
main, chame as duas funções em sequência:fun main() { val danoBase = calcularDano(50, 20) val danoComBuff = aplicarBuff(danoBase) // usa o multiplicador padrão (1.5) val danoComBuffForte = aplicarBuff(danoBase, 2.0) // sobrescreve o padrão println("Dano base: $danoBase | Com buff: $danoComBuff | Buff forte: $danoComBuffForte") } - Rode e observe os três valores impressos.
✅ Resultado Esperado
danoBase=30(50 - 20)danoComBuff=45(30 * 1.5)danoComBuffForte=60(30 * 2.0)- Saída:
"Dano base: 30 | Com buff: 45 | Buff forte: 60"
🆘 Resolução de Problemas Comuns
| Erro | Causa | Solução |
|---|---|---|
No value passed for parameter 'multiplicador' |
Faltou o = 1.5 na declaração de multiplicador, tornando-o obrigatório |
Adicione multiplicador: Double = 1.5 para que o parâmetro seja opcional |
Type mismatch: required Int, found Double |
dano * multiplicador resulta em Double, mas a função declara retorno Int |
Use .toInt() para converter o resultado antes do return |
aplicarBuff(danoBase) usa 2.0 em vez de 1.5 |
O valor padrão foi sobrescrito sem querer, ou a ordem dos parâmetros foi trocada na chamada | Confirme que a chamada sem o segundo argumento usa o padrão definido na função |