Text Editor Text Editor
Simple
EN Russian

Я думаю, многие из вас сталкивались с такой проблемой: работаешь в текстовом редакторе, сохраняешь документ и закрываешь редактор. А на следующий день перечитываешь текст и понимаешь, что одна из предыдущих версий была лучше, но вернуть её уже никак нельзя. С этой проблемой прекрасно справляются системы контроля версий (например, git), но в основном ими пользуются разработчики, а не обычные люди, работающие с текстом. В этой миссии вы поможете этим людям, создав прототип текстового редактора с возможностью сохранять различные версии текста, а затем возвращаться к любой из них....
Ваша задача - реализовать 2 класса: Text и SavedText. Первый будет отвечать за работу с текстом (добавление, изменение шрифта и т.д.), а второй - за сохранение и управление версиями.

Класс Text должен иметь следующие методы:
(text) - добавляет указанный текст к текущему.
(font name) - устанавливает шрифт текста. Шрифт распространяется на весь текст, даже добавленный после установки шрифта и отображается в квадратных скобках перед началом текста и после конца: "[Arial]...example...[Arial]". Шрифт может быть задан сколько угодно раз, но отображается только последний из них.
- отображает текущий текст и шрифт (если задан).
(SavedText.get_version(number)) - возвращает текст к указанной версии.

Класс SavedText должен иметь следующие методы:
(Text) - сохраняет текущее состояние текста и текущий шрифт. Первая сохраненная версия имеет номер 0, вторая - 1 и так далее.
(number) - метод используется вместе с методом restore класса Text и служит для выбора нужной версии текста.

В этой миссии вам может помочь такой шаблон проектирования, как .

You should be an authorized user in order to see the full description and start solving this mission.