3.1 KiB
3.1 KiB
Задача 4. Поэма Края (ООП и работа с JSON)
Контекст лора: Игрок проделал долгий путь, чтобы достичь конца игры. Теперь он видит слова на экране и слышит голоса из пустоты. Вселенная обращается к нему напрямую. В финале Поэма Края должна связать мысли игрока и послание вселенной воедино, прочитав сакральный текст из внешнего источника.
Постановка
- Читатель поэмы: Имеет имя файла и может читать текст поэмы из JSON-файла.
- Игрок: Имеет имя и может видеть слова на экране.
- Вселенная: Имеет имя и может произносить финальное послание.
- Поэма Края: Содержит читателя, игрока и вселенную; может воспроизводить титры, используя текст из JSON.
Задание
Класс PoemReader:
- Импортируйте модуль
json. - Создайте класс
PoemReader. - Создайте метод
__init__(self, filename). - Создайте метод
read_poem(self), который открывает JSON-файл на чтение (с кодировкойutf-8), преобразует его содержимое в словарь и возвращает значение по ключу"poem_text".
Класс Player:
- Создайте класс
Player. - Создайте метод
__init__(self, name). - Создайте метод
see_words(self), который выводит сообщение: "[Имя] читает наши мысли так, словно это слова на экране."
Класс Universe:
- Создайте класс
Universe. - Создайте метод
__init__(self), определяющий свойствоnameравным"Вселенная". - Создайте метод
speak(self), выводящий фразу: "И Вселенная говорит тебе: Я люблю тебя."
Класс EndPoem:
- Создайте класс
EndPoem. - Создайте метод
__init__(self, reader, player, universe). - Создайте метод
play_credits(self), который: вызывает чтение текста из JSON, выводит его на экран, а затем вызывает методы игрока и вселенной.
Тесты:
- Создайте файл
poem.jsonрядом с вашим скриптом, поместив туда словарь с ключом"poem_text"и текстом поэмы. - Создайте объект читателя, передав ему имя файла.
- Создайте объекты игрока и вселенной.
- Создайте объект поэмы и запустите титры.