L-System
リンデンマイヤー・システム(ライフ・システムだとずっと思ってた)の略。
当然リンデンマイヤーさんが名付け親。
初期値に置換を繰り返し加える事で、フラクタルなんかを作ったりできる。*1
藻類
作ってみたのは、Wikipediaに載ってた「藻類」。
初期値はA。
置換ルールは A → AB, B → A の二つ。
Unity Web Player版
文字数制限とかしてないので、あんまりポチポチすると壊れる(多分)。
ソースコード
using UnityEngine; using UnityEngine.UI; using System.Collections.Generic; using System.Text; public class LSys : MonoBehaviour { public Text text; public StringBuilder[] str = new StringBuilder[2]; private Dictionary<string, string> rule = new Dictionary<string, string>() { {"A", "AB"}, {"B", "A"} }; private string start = "A"; void Awake() { for (int i = 0; i < 2; i++) { str[i] = new StringBuilder(); } str[0].Append(start); } // Use this for initialization void Start() { this.text.text = str[0].ToString(); } public void OnNextButton() { for (int i = 0; i < str[0].Length; i++) { str[1].Append(rule[str[0][i].ToString()]); } str[0].Remove(0, str[0].Length); str[0].Append(str[1].ToString()); str[1].Remove(0, str[1].Length); this.text.text = str[0].ToString(); } }
- メディア: ペーパーバック
- この商品を含むブログを見る
- 作者: ロバート・L.ドゥヴェイニー,後藤憲一,国府寛司,石井豊,新居俊作,木坂正史
- 出版社/メーカー: 共立出版
- 発売日: 2003/11/01
- メディア: 単行本
- 購入: 1人 クリック: 3回
- この商品を含むブログ (4件) を見る