From 87e46d77e5aa1e0961b2121fa486c4ad6b6de7ad Mon Sep 17 00:00:00 2001 From: =?utf8?q?Am=C3=A9lia=20Coutard-Sander?= Date: Wed, 7 Jan 2026 14:38:53 +0100 Subject: [PATCH] =?utf8?q?README.txt=20qui=20explique=20le=20fonctionnemen?= =?utf8?q?t=20de=20l'=C3=A9diteur?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- README.txt | 45 ++++++++++++++++++++++++++++++++++++ automata/automata.ml | 1 - automata/automata/cont.ml | 48 --------------------------------------- 3 files changed, 45 insertions(+), 49 deletions(-) create mode 100644 README.txt delete mode 100644 automata/automata/cont.ml diff --git a/README.txt b/README.txt new file mode 100644 index 0000000..4bffdce --- /dev/null +++ b/README.txt @@ -0,0 +1,45 @@ +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 -> Change l'automate actuel à celui nommé . + write -> Sauvegarde l'état actuel de la grille dans + . + read -> Lis le nouvel état de la grille depuis + . 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). diff --git a/automata/automata.ml b/automata/automata.ml index 79cbba5..96a386c 100644 --- a/automata/automata.ml +++ b/automata/automata.ml @@ -160,6 +160,5 @@ let automata = (module Life : Automaton); (module Wireworld : Automaton); (module Brain : Automaton); - (module Cont : Automaton); (module Maze : Automaton); ] diff --git a/automata/automata/cont.ml b/automata/automata/cont.ml deleted file mode 100644 index 149a9f5..0000000 --- a/automata/automata/cont.ml +++ /dev/null @@ -1,48 +0,0 @@ -(* Copyright 2024 Amélia COUTARD . - * - * 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 . - *) - -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 -- 2.51.0