Наглядная система сборки Кубика Рубика



© В.С. Джанмухамедов, А.П. Хвастунов, А.А. Шалыто

Санкт-Петербургский государственный университет информационных технологий, механики и оптики

Проектная документация
Исполняемая программа
Исходные тексты

Аннотация

В данном проекте рассматривается применение автоматного программирования для создания открытого проекта, визуализирующего сборку Кубика Рубика. Рассматриваемый пример хорош тем, что наглядно представляет пользователю такие понятия теории автоматов как состояния, переходы, входные условия и выходные воздействия. Поэтому этот пример хорошо подходит для первоначального знакомства с автоматным стилем программирования. В примере для функционирования программы построено семь автоматов, пошагово собирающих кубик. Следует заметить, что графы переходов всех автоматов являются планарными, что способствует их наглядности.

Для реализации проекта выбран язык Visual С++. Использовалась библиотека MFC для создания интерфейса программы и библиотека OpenGL для отображения сборки кубика на экране. Проект тестировался на операционной системе Windows XP.

Процесс разработки приложения подтвердил тот факт, что автоматное программирование целесообразно применять в тех случаях, когда для сложного алгоритма требуется формально и «прозрачно» описать его логику. Такое описание позволило создать приложение, которое стало правильно работать с первого раза. Вряд ли бы это удалось, если бы авторы стали писать программу традиционным путем.