Algorithms / systems | 2024
Polyomino Generator
OCaml-based random polyomino generator with deterministic seeds, ASCII rendering, and Prolog export for rule-based analysis.
Role
Developer
Stack
OCamlDuneProlog
Local source folder: Polyomino-main
Quick Highlights
- - Implemented square/polyomino core operations (area, bounding box, membership, and serialization) in modular OCaml libraries.
- - Built a random-walk growth algorithm that generates anchored connected polyominoes up to a target area.
- - Added CLI entrypoint (`dune exec PolyominoGenerator <area> [seed]`) with optional seed for reproducible outputs.
- - Generated Prolog facts (`filled(square(X,Y)).`) plus ASCII drawing comments to support downstream logic queries.
- - Included Prolog analysis predicates (`neighbor/2`, `filled_neighbor/2`, `pattern_position/2`, `area/1`) for structural inspection.