На этом шаге мы рассмотрим создание собственных функций.
Теперь, когда мы организовали логику NyetHack в функции, можно приступать к реализации заклинания, порождающего бокал дурманящего напитка. В конце Game.kt объявите новую функцию с именем castFureball без параметров. Добавьте модификатор видимости private. castFireball не должна иметь возвращаемых значений, но должна выводить эффект от применения заклинания.
private fun castFireball() { println("A glass of Fireball springs into existence.") }
Рис.1. Добавление функции castFireball (Game.kt)
Теперь вызовите castFireball() из функции main().
. . . . . // Состояние игрока printPlayerStatus(auraColor, isBlessed, name, healthStatus) castFireball() . . . . .
Рис.2. Вызов функции castFireball (Game.kt)
Запустите NyetHack и полюбуйтесь новым выводом:
(Aura: GREEN) (Blessed: YES) Madrigal has some minor wounds, but is healing quite quickly! A glass of Fireball springs into existence.
Рис.3. Вывод результата
Отлично! Похоже, что заклинание работает, как и задумывалось.
Один бокал напитка - это хорошо, но игрок должен иметь возможность наколдовать больше одного бокала за раз.
Обновите функцию castFireball, чтобы она принимала параметр Int с именем numFireballs. При вызове функции castFireball передайте ей аргумент 5. Наконец, отметьте количество бокалов в выходных данных.
fun main() { . . . . // Состояние игрока printPlayerStatus(auraColor, isBlessed, name, healthStatus) castFireball(5) } . . . . . private fun castFireball(numFireballs: Int) { println("A glass of Fireball springs into existence.(x$numFireballs)") }
Рис.4. Добавление параметра numFireballs (Game.kt)
Снова запустите NyetHack. Вы увидите следующее сообщение:
(Aura: GREEN) (Blessed: YES) Madrigal has some minor wounds, but is healing quite quickly! A glass of Fireball springs into existence. (x5)
Рис.5. Результат работы приложения
Функции с параметрами позволяют при вызове передать аргументы с входными данными. Вы можете использовать их в логике функции или просто выводить их в составе шаблонной строки, как сделали со значением 5.
На следующем шаге мы рассмотрим аргументы по умолчанию.