module type PUZZLE = sig
.. end
A PUZZLE describes the state space of a puzzle.
type
state
type
move
val apply : state -> move -> state
apply s m
the state created by executing the move m
in state s
val moves : state -> move list
Gives the list of all possible moves from a given state
val is_goal : state -> bool
returns true if the given state is a goal state
val equal : state -> state -> bool
returns true if two states are equal
val goodness : state Util.comparator
Compares two states based on how close to the goal they are. s1
is better than s2
if goodness s1 s2 = Gt
.