一個簡單的N態雙色圖靈機,在黑白單元格的包裹網格上運行,並在時鐘的每個滴答聲上遵循自訂規則。
有關運行範例,請參閱 http://turmites.destructuring-bind.org。預設會自動建立一隻螞蟻;可以透過點擊畫布來新增額外的螞蟻。
可以透過新增rule=...
參數來指定規則,其中一些允許的值如下所示。
langtons-ant(其隱含規則為 120080)
盤繞繩(隱含規則:111180121010)
電腦藝術(隱含規則:180121020081)
斐波那契(隱含規則:181181121010)
蠕蟲蹤跡(隱含規則:121181121020)
條紋螺旋(隱含規則:021080181020)
可以在此處找到預定義規則的完整清單。如果沒有給出規則,則將隨機選擇預先定義的規則。或者,可替換地,規則定義可以被指定為數字序列,例如。 http://turmites.destructuring-bind.org/?rule=021080181020
N狀態雙色規則由2N 個三元組{a,b,c}組成,其中:
a : 正方形的新顏色
b : turmite 轉動的方向
c : turmite 的新內部狀態
例如,斐波那契數列的規則定義為181181121010 ,有兩種狀態和兩種顏色,並分為四個三元組{1,8,1}、{1,8,1}、{1,2 ,1} 和{0 ,1,0}。基於目前狀態和目前顏色來選擇微粒三元組。因此,{1,8,1} 三元組表示顏色應更改為 1,向左轉 (8) 並在繼續前進之前採用狀態 1。
轉彎方向由下式指定:
1:不轉彎
2:右
4:掉頭
8:左
這些動作由狀態轉換表指定,該表列出了 turmite 的當前內部狀態以及它目前所在的單元格的顏色。例如,下表使用了用於上面顯示的斐波那契三元組的下一個規則集:
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 呼叫黑色實例:
$ lein run
作為建置的一部分,clojure 腳本將編譯為 javascript,因此瀏覽到 http://localhost:8080
不要嘗試編輯 javascript - 它是使用 Leiningen 和 lein-cljsbuild 插件從src/turmites/client/core.cljs
中的 ClojureScript 編譯而來的:
$ lein cljsbuild clean
$ lein cljsbuild auto
儲存檔案後刷新瀏覽器中的頁面並允許編譯階段完成。
土蟻是蘭頓蟻的概括。
部分靈感來自 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/
版權所有 (c) 理查德·赫爾 2012
與 Eclipse 公共授權 - v 1.0 相同:https://www.eclipse.org/legal/epl-v10.html