Class intended to provide the grounding for describing a puzzle's logic by abstractly implementing the IDescriptor interface. It is recommended that custom puzzle descriptors inherit from this class.
Collection of IEntity objects.
Class that inherits from Descriptor to describe a puzzle's logic through delegate properties called by the base class' overridden methods. Its purpose is to provide a convenient way for describing a puzzle's logic without creating custom classes.
Interface that bundles up and exposes the basic components required to describe a puzzle's logic and its constraints.
Interface that represents an element of a puzzle, whose behavior or properties are to be modified or mutated by transformations in order to find a solution to said puzzle.
Interface that represents a place containing a set of IEntity objects, wherein the behavior or properties of such objects will be modified or mutated through transformations in order to find a solution to the belonging puzzle. The combination of an environment and said set of IEntity objects represents a puzzle's state at a certain time.
Delegate to implement the RetrieveNextEntities(IEnvironment) method independently from any custom puzzle descriptor class.
Delegate to implement the ValidateSolution(IEnvironment, Double) method independently from any custom puzzle descriptor class.