]> git.ameliathe1st.gay Git - cells.git/commitdiff
Définition de la signature des automates
authorAmélia Coutard-Sander <git@ameliathe1st.gay>
Thu, 12 Dec 2024 15:17:24 +0000 (16:17 +0100)
committerAmélia Coutard-Sander <git@ameliathe1st.gay>
Thu, 12 Dec 2024 15:17:39 +0000 (16:17 +0100)
automata/automata.ml
automata/automata.mli
automata/dune
bin/dune
bin/main.ml
dune-project

index e090318fc248985e13b545c552e7a74155b64993..63de7636f5cfd80fb41a898a93fdba5f049fc8df 100644 (file)
  * You should have received a copy of the GNU Affero General Public License along
  * with this program. If not, see <https://www.gnu.org/licenses/>.
  *)
+
+module type Automaton = sig
+  val name : string
+
+  type t
+
+  val neighbours : (int * int) list
+
+  val transition : t list -> t -> t
+
+  val default : t
+
+  val prev : t -> t
+
+  val next : t -> t
+
+  val color : t -> Graphics.color
+end
+
+let automata = []
index e090318fc248985e13b545c552e7a74155b64993..59a2c624b73ecba496889db2386f629092c0abcf 100644 (file)
  * You should have received a copy of the GNU Affero General Public License along
  * with this program. If not, see <https://www.gnu.org/licenses/>.
  *)
+
+module type Automaton = sig
+  val name : string
+
+  type t
+
+  val neighbours : (int * int) list
+
+  val transition : t list -> t -> t
+
+  val default : t
+
+  val prev : t -> t
+
+  val next : t -> t
+
+  val color : t -> Graphics.color
+end
+
+val automata : (module Automaton) list
index 07028bf7282cc0d5c05834ab22da47bb23c93a6c..c503e3a1950079c7beaa902ebbad497b145841a9 100644 (file)
@@ -1,2 +1,5 @@
+(include_subdirs unqualified)
+
 (library
- (name automata))
+ (name automata)
+ (libraries graphics))
index 3909b043359a6b959962d51bf1924e7880d5343c..6313089927478898cb978cb7dcb740d99568bffe 100644 (file)
--- a/bin/dune
+++ b/bin/dune
@@ -1,4 +1,4 @@
 (executable
  (public_name cells)
  (name main)
- (libraries automata))
+ (libraries automata graphics))
index 42c62eed25c9f26f3f775ac8514ab4f6ce2f8c76..350e3d07aa69a62cff470dd05935e50e847e4f09 100644 (file)
@@ -13,4 +13,9 @@
  * with this program. If not, see <https://www.gnu.org/licenses/>.
  *)
 
-let () = Printf.printf "Hello, world !\n"
+let () =
+        List.iter
+          (fun m ->
+            let module Automaton = (val m : Automata.Automaton) in
+            Printf.printf "%s\n" Automaton.name)
+          Automata.automata
index 22574f60cc1bc66bcb20743275808a7c76ef8a31..c612ef94516de26d1cafd9bc1e1d9fa849ac5a5d 100644 (file)
@@ -18,5 +18,5 @@
  (name cells)
  (synopsis "Un simulateur d'automates cellulaires.")
  (description "Un système pour simuler n'importe quel automate cellulaire en deux dimensions (à condition d'en faire un module OCaml).")
- (depends ocaml dune)
+ (depends ocaml dune graphics)
  (tags ("cellular" "automaton" "automata")))