Шаг 162.
Основы Kotlin.
Объекты. Задания для самостоятельного решения
На этом шаге мы приведем несколько практических заданий с возможными решениями.
Здесь мы предлагаем вам выполнить несколько заданий, направленных на закрепление изученного материала.
Задание 1: команда "Quit"
Игроки, скорее всего, в какой-то момент захотят завершить игру NyetHack, но сейчас игра этого не позволяет. Ваше задача - исправить это. Когда пользователь вводит "quit",
игра NyetHack должна вывести прощальное сообщение и завершить работу. Подсказка: вспомните, что на данный момент ваш цикл while выполняется бесконечно.
Суть этой задачи заключается в том, чтобы завершить цикл при определенном условии.
Раскрыть/скрыть решение и комментарии.
Мы решили оставить подсказку, но не захотели ей воспользоваться, предположив, что, наверняка, есть специальная команда или функция, позволяющая завершить приложение. Такая функция есть
и называется exitProcess(), аргументом которой является возвращаемое число. Возврат 0 говорит о том, что процесс завершился нормально.
Добавим в функцию processCommand() команду quit, при выполнении которой будет вызываться фунция, завершающая работу.
Вот код, решающий эту задачу:
. . . .
object Game {
. . . .
private class GameInput(arg: String?) {
private val input = arg ?: ""
val command = input.commandsplit(" ")[0]
val argument = input.split(" ").getOrElse(1, { "" })
fun processCommand() = when (command.toLowerCase()) {
"quit" -> finish()
"move" -> move(argument)
else -> commandNotFound()
}
private fun commandNotFound() = "I'm not quite sure what you're trying to do!"
}
fun finish()
{
println("Bye-bye!")
exitProcess(0)
}
. . . .
}
Рис.1. Текст функций, решающих указанную задачу
Со следующего шага мы начнем рассматривать интерфейсы и абстрактные классы.
Предыдущий шаг
Содержание
Следующий шаг