Be a Better Programmer. Turing machine
Участники проекта
Руководитель
Игра “Be a Better Programmer. Turing machine”
Цель моего проекта — создание браузерной игры в жанре головоломки, знакомящей с машиной Тьюринга. Игра должна была быть реализована на доменно-специфичном языке программирования Elm, предназначенным для написания браузерных приложений и основанным на функциональной парадигме.
Выбор языка был связан с растущей популярностью функционального программирования и появлением его элементов во многих популярных языках программирования в последние годы. Практический интерес представляло создание веб приложения на специализированном языке и проверка заявленным его создателем характеристик (в первую очередь простоты его изучения и использования).
Результатами работы над проектом стали:
- Анализ базовых возможностей языка Elm;
- Выявление преимуществ языка Elm перед Javascript;
- Написание модуля машины Тьюринга на Elm;
- Создание браузерной игры на основе созданного модуля;
- Проведение бета-тестирования приложения с целью выявление его недостатков.
Задача пользователя — повторить комбинацию клубков в корзинах, изображённую в зеркале. Лента машины Тьюринга представлена корзинами, клубки являются значениями, хранящимися в ячейках ленты. Головка машины представлена задумчивым котиком, состояние машины — текущий цвет котика. Для выполнения задачи необходимо правильно заполнить недостающие элементы таблицы переходов (знаки вопросов в правой части экрана). Значение в ячейке таблицы — тройка (новый символ в текущей ячейке ленты, новое состояние машины, направление сдвига головки). После заполнения таблицы необходимо запустить машину, посмотреть порядок выполнения алгоритма в таблице, получить результат. В игре несколько уровней сложностей, разделенных на логические блоки. Каждый блок сопровождается поясняющими текстовыми вставками.
Первый короткий доклад даже нечаянно выиграл приз за лучший блиц доклад. Позднее также был подготовлен доклад на VI Всероссийский конгресс молодых ученых, ссылку на который можно найти ниже. Отсюда совет студентам: если у Вас есть возможность, ходите на презентации результатов практик, задавайте вопросы другим, поучаствуйте на конференции или технологическом семинаре по теме своего проекта. Умение представить идею и готовую реализацию - это вторая половина дела.