Una simple máquina de Turing de dos colores en estado N que opera en una cuadrícula envuelta de celdas blancas y negras y sigue reglas personalizadas en cada tictac de un reloj.
Consulte http://turmites.destructuring-bind.org para ver un ejemplo en ejecución. Por defecto se crea automáticamente una hormiga; Se pueden agregar hormigas adicionales haciendo clic en el lienzo.
Las reglas se pueden especificar agregando un parámetro rule=...
, del cual algunos valores permitidos se muestran a continuación.
langtons-ant (que tiene una regla implícita de 120080)
cuerda-enrollada (regla implícita: 111180121010)
arte por computadora (regla implícita: 180121020081)
fibonacci (regla implícita: 181181121010)
senderos de gusano (regla implícita: 121181121020)
espiral rayada (regla implícita: 021080181020)
Puede encontrar una lista completa de reglas predefinidas aquí. Si no se proporciona ninguna regla, se seleccionará al azar una predefinida. O, alternativamente, las definiciones de reglas pueden especificarse como una secuencia de dígitos numéricos, por ejemplo. http://turmites.destructuring-bind.org/?rule=021080181020
Una regla de dos colores de N estados consta de 2N tripletas, {a,b,c} , donde:
a : el nuevo color del cuadrado
b : la(s) dirección(es) en que debe girar la turmita
c : el nuevo estado interno de la turmita
Por ejemplo, la turmita de Fibonacci, tiene la definición de regla 181181121010 , tiene dos estados y dos colores, y se divide en cuatro ternas {1,8,1}, {1,8,1}, {1,2,1} y {0 ,1,0}. La partícula triple se selecciona en función del estado actual y del color actual. El triple {1,8,1} por tanto indica que el color debe cambiar a 1, girar a la izquierda (8) y adoptar el estado 1 antes de avanzar.
La dirección a girar está especificada por:
1: sin turno
2: correcto
4: cambio de sentido
8: izquierda
Las acciones se especifican mediante una tabla de transición de estado que enumera el estado interno actual de la turmita y el color de la celda en la que se encuentra actualmente. Por ejemplo, el siguiente conjunto de reglas a utilizar para los triples de Fibonacci que se muestran arriba se utiliza en la siguiente tabla:
current-color = 0 current-color = 1
current-state = 0 1,8,1 1,8,1
current-state = 1 1,2,1 0,1,0
Entonces, si el estado actual es 1 y el color actual es 0, entonces se selecciona el triplete {1,2,1} y el nuevo color, dirección y estado se derivan de eso.
Invoca una instancia noir usando leiningen:
$ lein run
El script clojure se compilará en javascript como parte de la compilación, así que vaya a http://localhost:8080
No intente editar el javascript: está compilado desde ClojureScript en src/turmites/client/core.cljs
usando Leiningen con el complemento lein-cljsbuild:
$ lein cljsbuild clean
$ lein cljsbuild auto
Actualice la página en el navegador después de haber guardado el archivo y permita que se complete la fase de compilación.
Las turmitas son una generalización de las hormigas Langton.
Inspirado (en parte) en "Un nuevo tipo de ciencia" 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
Igual que la licencia pública de eclipse - v 1.0: https://www.eclipse.org/legal/epl-v10.html