(CL)S Solver for Labyrinths
Finds all ways from start (s) to goal (g) in a labyrinth such as
|x|g|x| | | | | |s|x| | | | | |
where x-fields are blocked tiles. Uses (CL)S to compute the solution. The example is taken from:
Jan Bessai, Anna Vasileva: User Support for the Combinator Logic Synthesizer Framework. F-IDE@FLoC 2018: 16-25. Online here.
Results are served via MQTT.
- Start an Agent using
- Send a JSON-encoded Task to the broker under the taskTopic.
- Send a JSON-encoded request for solutions to the broker under the topicForRequests specified in your task.
- Receive maxCount JSON-encoded Solution replies under the topicForSolutions specified in your task.
The agent can be cleanly exited by pressing enter.
Solutions will be ordered by the number of necessary steps and 'wrap around' (be repeated) if more solutions are requested than possible. Protocol data is encoded and decoded using circe.
You can use
sbt run to start a Demo client.
To avoid trouble, make sure the agent is running before starting the demo client.