![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#3
|
|||
|
|||
![]() А я бы подругому решал эту проблему.
У тебя есть некоторое исполнительное устройство (Вася). Вася может выполнять следующий набор команд: - POP(S): взять ящик со склада (должен быть на этом складе и Вяся и ящик и у Васи не должно быть ящика); - PUT(S): положить ящик; (Вася должен быть на нужном складе, у него д.б. ящик и на складе должно быть место) -MOVE(S): перемещаться между складами. Теперь о командах пользователя. Команда пользователя представляет собой микропрограмму. Путь надо отнести ящик со склада 1 на склад 2. Тогда микропрограмма выглядит так: MOVE(1) POP(1) MOVE(2) PUT(2) Если после выполнения команды пользователя Вася должен вернуться на изначальный склад, то надо добавить MOVE(1) Каждый шаг отрабатывается отдельно (у тебя в коде). Т.е. для каждой команды надо написать процедуру, которая будет делать анимацию. Делать сама и не возвращать управление, пока не выполнит. Тогда у тебя будет некоторый унифицированный механизм исполнения потока таких команд. Теперь про отрисовку. У тебя должен быть объект, который себя отрисовывает в нужных координатах по тем условиям (есть у Васи ящик или нет), которые заданны в нем (объекте). Все. Осталост только заблокировать ввод пользователя до конца исполнения программы ![]() |