Реестр
Пришло время последнего проекта перед корутинами! Этот мини-проект собирает вместе строки и объекты из двух последних уроков и всё, что вы узнали до них. Как и в прошлых мини-проектах, задание говорит, что должна выводить программа, а как её написать — решать вам; каждое упражнение запускает вашу программу ещё и с другими данными.
Проект. Эмма ведёт реестр своих животных. За три упражнения ваша программа прочитает его из текста, превратит каждое животное в объект, выведет реестр аккуратными столбцами и, наконец, посчитает яйца, которые куры снесли за неделю.
Данные. register — строка, такая же, как в блокноте Эммы: для каждого животного имя, вид и год рождения через двоеточия, а животные разделены запятой и пробелом. year — нынешний год. Упражнение пробует и другие реестры, и другие годы.
Задача. Напишите класс Animal, прочитайте реестр и создайте объект этого класса для каждого животного. Затем выведите каждое животное с его возрастом в том порядке, в каком они записаны в реестре:
Белла, корова, возраст: 5
Рекс, собака, возраст: 3
Мурка, кошка, возраст: 4
Златка, курица, возраст: 2
Перла, курица, возраст: 1Возраст животного — это нынешний год минус год рождения. И будьте внимательны с русскими буквами: в Lua каждая из них занимает два байта.
Подсказка: gmatch с тремя захватами даст вам имя, вид и год каждого животного; вспомните, какие части шаблона справляются с русскими буквами. А с __tostring животное можно вывести одним print.
Задание
- 1
Выведите всех животных из реестра, как в примере.