ライフゲーム #3
前述のテストデータでは単純すぎるので、
それより少しだけ複雑な、でも分かりやすいものを作成してみる。
blinker_0.gv
graph { n0_0 -- n0_1 -- n0_2 -- n0_3 -- n0_4; n1_0 -- n1_1 -- n1_2 -- n1_3 -- n1_4; n2_0 -- n2_1 -- n2_2 -- n2_3 -- n2_4; n3_0 -- n3_1 -- n3_2 -- n3_3 -- n3_4; n4_0 -- n4_1 -- n4_2 -- n4_3 -- n4_4; n0_0 -- n1_0 -- n2_0 -- n3_0 -- n4_0; n0_1 -- n1_1 -- n2_1 -- n3_1 -- n4_1; n0_2 -- n1_2 -- n2_2 -- n3_2 -- n4_2; n0_3 -- n1_3 -- n2_3 -- n3_3 -- n4_3; n0_4 -- n1_4 -- n2_4 -- n3_4 -- n4_4; n0_0 -- n1_1 -- n2_2 -- n3_3 -- n4_4; n0_1 -- n1_2 -- n2_3 -- n3_4; n0_2 -- n1_3 -- n2_4; n0_3 -- n1_4 n1_0 -- n2_1 -- n3_2 -- n4_3; n2_0 -- n3_1 -- n4_2; n3_0 -- n4_1 n0_4 -- n1_3 -- n2_2 -- n3_1 -- n4_0; n0_3 -- n1_2 -- n2_1 -- n3_0; n0_2 -- n1_1 -- n2_0; n0_1 -- n1_0; n1_4 -- n2_3 -- n3_2 -- n4_1; n2_4 -- n3_3 -- n4_2; n3_4 -- n4_3; n1_2 [alive=1]; n2_2 [alive=1]; n3_2 [alive=1]; }
前半のエッジ定義部分で25個のノードを5x5のメッシュに配置し、
基本的にノードの次数は8になるようにしている。
ただし、メッシュの端に位置するノードはそれより低い次数をもっており、
メッシュ辺で5、端頂点で3となる。
トーラス状に接続して端を無くすることも考えたが、とりあえず単純に。
後半の3行で25個のノードのうちalive属性を付与するノードを定義している。
メッシュ中央の3個のノードにalive属性を付与し線状に並べてある。
エッジの定義に関しては、25個程度のノードでもこの有様であるので、
もっとノードを増やして広い範囲を見たい場合のために、
手書きでなく自動生成することを考えないといけないだろう。