↓
 ↑
Регистрация
Имя/email

Пароль

 
Войти при помощи
Ластро
16 ноября 2018
Aa Aa
#прогерское
Балуюсь с конечными автоматами... вроде ничего так получилось :)

А вот лог запуска этой малютки.
[SM] [1118StBMMh] [set transition] [state Off] -> [event TakeOn] -> [state On]
[SM] [1118StBMMh] [set finish state] [state On]
[SM] [1118StBMMh] [set 'entry do' handler] [state On]
[SM] [1118StBMMh] [set 'exit do' handler] [state Off]
[SM] [1118StBMMh] [set 'exit do' handler] [state On]
[SM] [1118StBMMh] [init state] [state Off]
[SM] [1118StBMMh] [transition] [state Off] -> [event TakeOn] -> [state On]
[SM] [1118StBMMh] [exit do] [state Off]
[SM] [1118StBMMh] [entry do] [state On]
[SM] [1118StBMMh] [finish state] [state On]
[SM] [1118StBMMh] [exit do] [state On]


Исходники - если кому-то интересно.

В принципе, я туда впихнул всё что хотел, кроме возможности объединять состояния в группы. Так как хочется сразу сделать следующий шаг и дать возможность объединять группы и на любое кол-во уровней :) может за выходные сделаю, а может и нет.
16 ноября 2018
4 комментария
Эх... вообще ничего не помню про конечные автоматы. Посмотрел пост и... так ничего и не вспомнил.
Ластро
На каком это языке написано? Haskell? Эта штука делает переход между двумя состояниями Off - On по событию Take On?
В универе писал как-то транслятор для простенького Паскале подобного языка в С++ в виде конечного автомата, получалось забавно.
Ластро
Да, Hasskell и да, именно это она и делает :) ну и ещё тут три обработчика переходов весят, правда, два из них пустышки, но лог показывает, что они честно вызываются Ж)
ПОИСК
ФАНФИКОВ











Закрыть
Закрыть
Закрыть