-let main () =
- let pool = Matrix.create ~rows:5 ~cols:5 ~data:() in
- Matrix.iter pool ~f:(
- fun ~row ~col ~data:() -> printf "R: %d, K: %d\n" row col
- )
+let main rs ks () =
+ Random.self_init ();
+ let grid = Matrix.create ~rs ~ks ~data:() |> Matrix.map ~f:Conway.create in
+ Matrix.print grid ~to_string:Conway.to_string
+
+
+let spec =
+ let summary = "Polymorphic Cellular Automata" in
+ let spec =
+ let open Command.Spec in
+ empty
+ +> flag "-rows" (optional_with_default 5 int) ~doc:"Height"
+ +> flag "-cols" (optional_with_default 5 int) ~doc:"Width"
+ in
+ Command.basic ~summary spec main