Module Tiling


module Tiling: sig .. end
Tiling problems modeling and encoding to EMC

module Pattern: sig .. end
Pattern representation as boolean matrix
module Tile: sig .. end

type problem = private {
   grid : Pattern.t;
   pname : string;
   pieces : Tile.t list;
}
val create_problem : ?name:string -> Pattern.t -> Tile.t list -> problem
construct a problem from his name, the board pattern and a list of tile
val print_problem : Format.formatter -> problem -> unit
print a problem

type emc = {
   primary : int;
   matrix : bool array array;
   tiles : (Tile.t * int * int) array;
}
val emc : problem -> emc
Encode the given problem under EMC
val print_solution_to_svg : Format.formatter ->
width:int -> height:int -> problem -> emc -> int list -> unit
print a solution under the svg format
val print_solution_to_svg_file : string ->
width:int -> height:int -> problem -> emc -> int list -> unit
print a solution to the svg format on the given file
val print_solution_ascii : Format.formatter -> problem -> emc -> int list -> unit
print a solution with ascii symboles to draw tiles