Create initial implementation for solution check

This commit is contained in:
Bálint Bokros 2018-02-09 17:27:51 +01:00
parent 4f181b8f09
commit 1e9642912c
2 changed files with 9 additions and 3 deletions

View File

@ -1,11 +1,14 @@
from typing import List
from transitions import Machine
class FSMBase:
states, transitions = [], []
def __init__(self, initial: str = None):
def __init__(self, initial: str = None, accepted_states: List[str] = None):
self.message_handlers = []
self.accepted_states = accepted_states or [self.states[-1]]
self.machine = Machine(model=self,
states=self.states,
transitions=self.transitions,
@ -24,3 +27,6 @@ class FSMBase:
def unsubscribe_message_handler(self, msghandler):
self.message_handlers.remove(msghandler)
def is_solved(self):
return self.state in self.accepted_states

View File

@ -20,8 +20,8 @@ def zmq_callback(stream, msg_parts):
stream.send_multipart(serialize_all(key, 'OK'))
if key == 'solution_check':
stream.send_multipart(serialize_all(key, {
'solved': True,
'message': 'solved'
'solved': fsm.is_solved(),
'message': 'solved' if fsm.is_solved() else 'not solved'
}))