シンプルなN状態の 2 色チューリング マシン。黒と白のセルのラップされたグリッド上で動作し、時計の刻みごとにカスタム ルールに従います。
実行例については、http://turmites.destructuring-bind.org を参照してください。デフォルトでは、1 つの ant が自動的に作成されます。キャンバスをクリックすると、追加のアリを追加できます。
ルールは、 rule=...
パラメータを追加することで指定できます。その許容値の一部を以下に示します。
langtons-ant (暗黙のルール 120080 を持つ)
コイル状のロープ (暗黙のルール: 111180121010)
コンピューターアート (暗黙のルール: 180121020081)
フィボナッチ (暗黙のルール: 181181121010)
ワームトレイル (暗黙のルール: 121181121020)
ストライプスパイラル (暗黙のルール: 021080181020)
事前定義されたルールの完全なリストは、ここにあります。ルールが指定されていない場合は、事前定義されたルールがランダムに選択されます。あるいは、ルール定義を一連の数字として指定することもできます。 http://turmites.destructuring-bind.org/?rule=021080181020
N状態の 2 色ルールは、 2N個のトリプル{a,b,c}で構成されます。ここで、
a : 正方形の新しい色
b : ターマイトが回転する方向
c : ターマイトの新しい内部状態
たとえば、フィボナッチ ターミットにはルール定義181181121010があり、2 つの状態と 2 つの色があり、4 つのトリプル {1,8,1}、{1,8,1}、{1,2,1}、および {0 に分割されます。 ,1,0}。粒子トリプルは、現在の状態と現在の色に基づいて選択されます。したがって、{1,8,1} トリプルは、前に進む前に色が 1 に変わり、左に曲がり (8)、状態 1 を採用する必要があることを示します。
曲がる方向は次のように指定されます。
1: 出番なし
2: そうですね
4:Uターン
8:左
アクションは、ターマイトの現在の内部状態と現在立っているセルの色をリストした状態遷移テーブルによって指定されます。たとえば、上記のフィボナッチ トリプルに使用する次のルール セットは、次の表で使用されます。
current-color = 0 current-color = 1
current-state = 0 1,8,1 1,8,1
current-state = 1 1,2,1 0,1,0
したがって、現在の状態が 1 で現在の色が 0 の場合、{1,2,1} トリプルが選択され、そこから新しい色、方向、状態が導出されます。
leiningen を使用して noir インスタンスを呼び出します。
$ lein run
Clojure スクリプトはビルドの一部として JavaScript にコンパイルされるため、http://localhost:8080 を参照します。
JavaScript を編集しないでください。JavaScript は、lein-cljsbuild プラグインを備えた Leiningen を使用して、 src/turmites/client/core.cljs
の ClojureScript からコンパイルされます。
$ lein cljsbuild clean
$ lein cljsbuild auto
ファイルを保存した後、ブラウザでページを更新し、コンパイル フェーズが完了するまで待ちます。
ターミットはラングトンアリを一般化したものです。
Stephen Wolfram の「A New Kind of Science」、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://demonstration.wolfram.com/Turmites/
https://en.wikipedia.org/wiki/Turmite
http://golly.sourceforge.net/
著作権 (c) リチャード ハル 2012
Eclipse パブリック ライセンスと同じ - v 1.0: https://www.eclipse.org/legal/epl-v10.html