A weird game.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
turings-tarpit/scratchpad/fsmtest.cpp

49 lines
842 B

#include <fmt/core.h>
#include "../fsm.hpp"
using namespace fmt;
enum class MyState {
START, RUNNING, END
};
enum class MyEvent {
STARTED, PUSH, QUIT
};
class MyFSM : DeadSimpleFSM<MyState, MyEvent> {
public:
void event(MyEvent ev) override {
switch(_state) {
FSM_STATE(MyState, START, start, ev);
FSM_STATE(MyState, RUNNING, push, ev);
FSM_STATE(MyState, END, quit, ev);
}
}
void start(MyEvent ev) {
println("<<< START");
state(MyState::RUNNING);
}
void push(MyEvent ev) {
println("<<< RUN");
state(MyState::RUNNING);
}
void quit(MyEvent ev) {
println("<<< STOP");
state(MyState::END);
}
};
int main() {
MyFSM fsm;
fsm.event(MyEvent::STARTED);
fsm.event(MyEvent::PUSH);
fsm.event(MyEvent::PUSH);
fsm.event(MyEvent::PUSH);
fsm.event(MyEvent::QUIT);
}