--- /dev/null
+Dépendances:
+ OCaml
+ ocaml-graphics
+
+Compiler:
+ dune b
+(Compiler et) Exécuter:
+ dune exec cells
+
+Ceci est un éditeur modal et simulateur d'automates cellulaires.
+Pour l'utiliser, il faut donc connaitre les commandes des différents
+modes.
+
+L'éditeur démarre en mode normal. Les commandes sont les suivantes:
+ : -> passer en mode commande
+ 0 -> revenir aux coordonnées 0:0
+ s -> mets la case pointée à la valeur actuelle
+ q, d -> mets la valeur actuelle à la précédente, ou la suivante
+ f -> effectue une étape de simulation
+ h, j, k, l -> se déplace d'une case à gauche, en bas, en haut,
+ ou à droite.
+ i, o -> zoome, ou dézoome
+
+Toute commande (sauf s, :, et 0) peut être précédée d'un nombre (en
+décimal, ne commençant pas par 0) qui indique le nombre de fois que l'on
+souhaite l'exécuter.
+
+En mode commande, que l'on active en faisant :, on peut taper des
+commandes plus longues, avec autocomplétion. Attention, les commandes
+ne demandent pas confirmation avec de s'effectuer sans sauvegarder.
+ quit -> Quitte l'éditeur.
+ clear -> Efface tout le contenu de la grille.
+ select <auto> -> Change l'automate actuel à celui nommé <auto>.
+ write <fichier> -> Sauvegarde l'état actuel de la grille dans
+ <fichier>.
+ read <fichier> -> Lis le nouvel état de la grille depuis
+ <fichier>. Change l'automate actuel si besoin.
+On peut effacer le dernier caractère via la touche retour arrière.
+On peut repasser en mode normal with la touche échap.
+On peut exécuter la commande en faisant entrée.
+On peut activer l'autocomplétion en faisant une tabulation.
+Toutes les autres touches servent simplement à écrire la commande.
+
+J'accepterai avec plaisir les contributions utiles envoyées par mail
+(via git send-mail) à mon adresse personelle (indiquée sur mon site).
+++ /dev/null
-(* Copyright 2024 Amélia COUTARD <https://www.f4mnq.fr>.
- *
- * This file from the program cells is free software: you can redistribute it and/or
- * modify it under the terms of the GNU Affero General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or (at your option)
- * any later version.
- *
- * This program is distributed in the hope that it will be useful, but WITHOUT ANY
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
- * PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.
- *
- * 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/>.
- *)
-
-let name = "Automate continu random"
-
-type t = float
-
-type 'a neighbours = 'a list
-
-let neighbours = [(0, 0); (-1, 0); (0, -1); (0, 1); (1, 0)]
-
-let map = List.map
-
-let fold_left = List.fold_left
-
-let iter = List.iter
-
-let transition l = List.fold_left ( +. ) 0. l /. 5.
-
-let default = 0.
-
-let prev c = c -. 1.
-
-let next c = c +. 1.
-
-let color c =
- let v =
- (if c > 0. then (512. /. (1. +. Float.exp (-.c))) -. 256. else (512. /. (1. +. Float.exp c)) -. 256.)
- |> int_of_float
- |> char_of_int
- in
- if c > 0. then (v, '\x00', '\x00') else ('\x00', '\x00', v)
-
-let of_string = float_of_string
-
-let to_string = string_of_float