🧩 Exercícios - Cap 04: Cálculo de Dano (Operadores)
🎯 Antes de começar
No Cap 04 você calculou dano = ataque - defesa e vidaZerada = vida <= 0, e nas Práticas Obrigatórias usou * (total da compra) e >= (podeEntrarNaArena). Depois de completar as duas Práticas, faça o exercício extra abaixo para praticar o operador % (resto da divisão) e os templates ${...} com expressões.
💪 Exercício Extra 1: Distribuindo Moedas entre Jogadores (15 min)
Objetivo: Praticar / (divisão inteira), % (resto) e templates de string com expressões (${...}).
Passos:
- No Kotlin Playground, crie
val moedas: Int = 17eval jogadores: Int = 5. - Calcule
val moedasPorJogador: Int = moedas / jogadores. - Calcule
val moedasRestantes: Int = moedas % jogadores. - Exiba o resultado com:
println("Cada jogador recebe ${moedasPorJogador} moedas, e restam ${moedasRestantes} no caixa.") - Troque
moedaspara20e rode de novo — observe como os dois resultados mudam.
✅ Resultado Esperado
- Com
moedas = 17ejogadores = 5:"Cada jogador recebe 3 moedas, e restam 2 no caixa." - Com
moedas = 20:"Cada jogador recebe 4 moedas, e restam 0 no caixa."
🆘 Resolução de Problemas Comuns
| Erro | Causa | Solução |
|---|---|---|
moedasPorJogador dá 3 em vez de 3.4 |
A divisão entre dois Int em Kotlin é divisão inteira — o resultado descarta a parte decimal |
Esse é o comportamento esperado para Int; para guardar a parte decimal, os dois valores precisariam ser Double |
O texto mostra ${moedasPorJogador} literalmente, em vez do número |
Esqueceu de colocar o texto inteiro entre aspas duplas " " |
Confirme que toda a frase está dentro de println("...") |
Unresolved reference: moedasRestantes |
Erro de digitação — nome diferente entre a declaração (val moedasRestantes = ...) e o uso no println |
Kotlin diferencia maiúsculas/minúsculas; confira se os nomes são idênticos |