Une simple machine de Turing bicolore à états N qui fonctionne sur une grille enveloppée de cellules noires et blanches et suit des règles personnalisées à chaque tick d'une horloge.
Voir http://turmites.destructuring-bind.org pour un exemple courant. Par défaut, une fourmi est automatiquement créée ; Des fourmis supplémentaires peuvent être ajoutées en cliquant sur la toile.
Les règles peuvent être spécifiées en ajoutant un paramètre rule=...
, dont certaines valeurs autorisées sont indiquées ci-dessous.
langtons-ant (qui a une règle implicite de 120080)
corde enroulée (règle implicite : 111180121010)
art informatique (règle implicite : 180121020081)
fibonacci (règle implicite : 181181121010)
traces de vers (règle implicite : 121181121020)
spirale-rayée (règle implicite : 021080181020)
Une liste complète des règles prédéfinies peut être trouvée ici. Si aucune règle n’est donnée, alors une règle prédéfinie sera sélectionnée au hasard. Ou bien, les définitions de règles peuvent être spécifiées sous la forme d'une séquence de chiffres numériques, par exemple. http://turmites.destructuring-bind.org/?rule=021080181020
Une règle bicolore à N états se compose de 2N triples, {a,b,c} , où :
a : la nouvelle couleur du carré
b : la(les) direction(s) de rotation de la tourmite
c : le nouvel état interne de la tourmite
Par exemple, la turmite de Fibonacci, dont la définition de règle est 181181121010 , a deux états et deux couleurs, et est divisée en quatre triplets {1,8,1}, {1,8,1}, {1,2,1} et {0. ,1,0}. Le triple particulaire est sélectionné en fonction de l'état actuel et de la couleur actuelle. Le triplet {1,8,1} indique donc que la couleur doit passer à 1, tourner à gauche (8) et adopter l'état 1 avant d'avancer.
La direction dans laquelle tourner est spécifiée par :
1 : pas de tour
2 : à droite
4 : faire demi-tour
8 : à gauche
Les actions sont spécifiées par un tableau de transition d'état répertoriant l'état interne actuel de la tourmite et la couleur de la cellule sur laquelle elle se trouve actuellement. Par exemple, le prochain ensemble de règles à utiliser pour les triples de Fibonacci indiqués ci-dessus est utilisé par le tableau suivant :
current-color = 0 current-color = 1
current-state = 0 1,8,1 1,8,1
current-state = 1 1,2,1 0,1,0
Donc, si l'état actuel est 1 et la couleur actuelle est 0, alors le triple {1,2,1} est sélectionné et la nouvelle couleur, la direction et l'état en sont dérivés.
Invoquez une instance noire en utilisant leiningen :
$ lein run
Le script clojure sera compilé en javascript dans le cadre de la construction, alors accédez à http://localhost:8080
N'essayez pas de modifier le javascript - il est compilé à partir de ClojureScript dans src/turmites/client/core.cljs
en utilisant Leiningen avec le plugin lein-cljsbuild :
$ lein cljsbuild clean
$ lein cljsbuild auto
Actualisez la page dans le navigateur après avoir enregistré le fichier et laissez la phase de compilation se terminer.
Les tourmites sont une généralisation des fourmis Langtons.
Inspiré (en partie) par "A New Kind of Science" de Stephen Wolfram, ISBN 1-57955-008-8
http://www.maa.org/editorial/mathgames/mathgames_06_07_04.html
http://code.google.com/p/ruletablerepository/wiki/TwoDimensionalTuringMachines
http://demonstrations.wolfram.com/Turmites/
https://en.wikipedia.org/wiki/Turmite
http://golly.sourceforge.net/
Copyright (c) Richard Hull 2012
Identique à la licence publique Eclipse - v 1.0 : https://www.eclipse.org/legal/epl-v10.html