1. Интерпретатор-КомпиляторСоздание интерпретатора-компилятора. В процессе разработки было создано последовательно около 3 различных версий компилятора. Хотя задача стоит на первый взгляд простая - превращать пользовательские команды в несколько элементарных команд для кенгуренка, самым адекватным вариантом оказалось почти полностью воссоздать методы работы реальных промышленных компиляторов.
Финальная версия компилятора работает по следующим шагам:
- Токенизация - разбирает код пользователя на мельчайшие частицы, присваивает каждой логический смысл и выстраивает их в непрерывный ряд;
- Валидация - проверяет корректность последовательности токенов, исключает грубые ошибки;
- Построение AST дерева (abstract syntax tree) - создает схему программы на основе подобранных токенов;
- Валидация - проверяет корректность построения АСТ дерева;
- Линковка - производит связку используемых переменных и функций с точками их объявления, проверяет совпадение типов в местах связки;
- Компиляция - если ошибок нет, на основе построенного AST собирается рабочая программа.
В реальных компиляторах есть ещё несколько дополнительных этапов, но общий алгоритм такой же.
2. Геймплей и основные системыПриняты и реализованы основные геймплейные механики. Определён размер полей для разных уровней сложности, добавлен механизм выбора цвета и буфер для хранения красок ограниченной вместимости. Доработаны системы сохранения и загрузки всех данных используемых в игре - это уровни, пользовательский и предзаданный код, информация для учебника, системные настройки и т.д.
Добавлен учебник, в котором описаны все возможности местного языка программирования.
Добавлена подсветка синтаксиса в кодовом окне, доработан интерфейс "ручного управления".
3. Контент уровнейна 80% распланирован контент для уровней на прохождение. 25% контента создано в игре - это схемы уровней и код разработчика для их прохождения.
Всего в игре планируется 4 уровня сложности, включающих 32 легких, 16 средних, 16 сложных и 4 расширенных схемы для каждого уровня соответственно.