状态机, 但是好像没太多用处