🧩 Exercícios - Cap 06: Poderes e Funções (Modularização)

📖 Ver Cap 06

🎯 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:

  1. No Kotlin Playground, copie a função calcularDano do exemplo do capítulo.
  2. Crie uma nova função:
    fun aplicarBuff(dano: Int, multiplicador: Double = 1.5): Int {
        return (dano * multiplicador).toInt()
    }
    
  3. 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")
    }
    
  4. Rode e observe os três valores impressos.

✅ Resultado Esperado


🆘 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

⬅️ Voltar para Exercícios