На этом шаге мы приведем задание и использование этого класса.
Начнем с создания нового файла в NyetHack с именем Room.kt. Он будет содержать новый класс с именем Room, представляющий один квадрат в плоскости координат NyetHack. Позже вы объявите конкретный вид комнаты в классе, который наследует характеристики Room.
Класс Room будет иметь одно свойство - name и две функции, description() и load(). Функция description() возвращает строку с описанием комнаты. Функция load() возвращает строку для вывода в консоль после входа в комнату. Этими чертами должны обладать все комнаты в NyetHack.
Добавьте объявление класса Room в Room.kt, как показано ниже.
class Room(val name: String) { fun description() = "Room: $name" fun load() = "Nothing much to see here..." }
Рис.1. Объявление класса Room (Room.kt)
Чтобы испытать новый класс Room, создайте экземпляр Room в main() на старте игры и выведите результат функции description().
import Player import Room fun main() { val player = Player("Madrigal") player.castFireball() var currentRoom = Room("Foyer") println(currentRoom.description()) println(currentRoom.load()) . . . . }
Рис.2. Вывод описания комнаты (Game.kt)
Запустите Game.kt. В консоли появятся строки:
A glass of Fireball springs into existence. (x2) Room: Foyer Nothing much to see here... (Aura: GREEN) (Blessed: YES) Madrigal of Neversummer is in excellent condition!
Рис.3. Результат работы приложения
Пока неплохо... Но скучно. Кто захочет проводить время в прихожей (foyer)? Настало время путешествий!
На следующем шаге мы рассмотрим создание подкласса.