ソフトの砂場(ワイヤワールド)

最終更新日:1999年02月27日

 [1]で、ワイヤワールドという名前で取り上げられている、セルオートマトンをシミュレートするプログラムを作ってみました。

Wire World実行例

動作

 このセルオートマトンでは、各セルが4つの状態を取り得ます。それぞれの状態の説明と次の状態への遷移をまとめると以下のようになります。

背景セル
 このセルは背景を表します。この状態のセルが、他の状態に移ることはありません。画面上では黒のセルで表します。
導線セル
 このセルは導線を表し、次の電子頭と電子尾を通すためのものです。この状態のセルの周囲8個のセル中に、電子頭セルが1個か2個あるとき、このセルは次の時刻には電子頭状態になります。画面上では、灰色で表します。
電子頭セル
 比喩的に電子と呼んでいるものの先頭を表します。この状態のセルは、次の時刻には電子尾状態になります。画面上では、水色で表します。
電子尾セル
 比喩的に電子と呼んでいるものの末尾を表します。この状態のセルは、次の時刻には導線状態に戻ります。画面上では、青色で表します。

 画面上に適当にセルを配置して実行すると、上図のように導線セルを電子が流れていくように見えます。

 上図で、左上にリング上の導線セルが3つあり、それぞれから右に導線セルが伸びています。一番上は単に真っ直ぐな導線セルなので、そこを電子が流れていき、右端まで来ると電子は消滅します。真ん中と一番下は右に伸びる導線セルにダイオードがつながっています。真ん中はダイオードが順方向につながっているので、電子はそこを通過します(電子が通るということは逆方向かも?)。一番下はダイオードが逆方向につながっているので、電子はそこを通過できません。

 上図右上は、ORゲートになっていて、左右のリングからそれぞれ32単位時間周期で来る電子を一つにまとめて、16単位時間周期で出力します。ダイオードは、電子が相手のリングに入るのを防ぐために入れてあります。

 ダイオードに両方向から電子が入る場合、タイミングによっては上図右下のように発振してしまいます。

操作方法

 セルの初期データをCSVファイルで与えるようにしています。操作方法として難しいところはないと思いますが、まず[ファイル|開く]で初期データのCSVファイルを選択し、実行・停止は[実行]メニューで行います。

 初期データを表すCSVファイルでは、それぞれのセルの状態を0〜3で表します。セル数は縦横共に64です。私は表計算ソフトで以下のように作成しました。まず64x64の範囲を0(背景セル)で埋め、導線セルのところに1、電子頭セルのところに2、電子尾セルのところに3を書きます。下図は、上の画面の左上部分のデータです。C2に電子頭、D2に電子尾、B3やE3などに導線を置いています。下図ではわかりやすいように色を付けていますが、実際は不要です。これをCSV形式で保存すると、データの準備完了です。

Wire Worldのデータ作成例

ダウンロード

雑感

 セルの状態が変わっていくだけなのに、電子が流れているように感じるのは面白いですね。まあ、パチンコ屋のネオンと同じなのですが ^^;

参考文献

  1. A.K.デュードニー,コンピューターレクリエーション, サイエンス日本語版 1990年3月号 pp.100-105, 日経サイエンス社, 1990

ホーム