簡単なサンプルプログラムで動く模様を作ってみます.ビスケットは割ときれいな動く模様は作りやすいのですが,今回はグリッドとランダムが追加されたことを記念して,その面白さを生かした模様にしてみます.
青い点の部品をつくって,それを斜めに並べて,交互に動くというメガネをつくります.
これを2つの青い丸だけで動かしたら,斜めの向きが交互に変わる動きになるだけです.面白いのは,次のように丸を並べたときです.
ビスケットの書き換えで重要なのは,一回の書き換えでは一つの部品は一つのメガネにしか使えないということです.たとえば,左から2つ目の丸があります.これは左から1つ目の丸と一緒になって,下のメガネ(右肩上がり)にマッチするのと同時に,真ん中の丸と一緒になって上のメガネ(左肩上がり)にもマッチします.どちらのメガネが選ばれるのかは,ランダムに決められます.その結果どんなアニメーションになるかというと,
のようになります.面白い動きですよね.
これはいろんなバリエーションの遊びがあります.メガネの中身をどのように作るかだけでなく,最初にステージに丸をどのように配置するのかもいろいろと工夫の余地があります.
別のブログでオブジェクト指向を批判したときに,オブジェクト指向での表現がプログラムに偏っている,と言いましたが,表現がプログラムとデータに分かれているというのはどういうことか.プログラムつまりメガネの中身だけでなく,データつまりステージへの最初の丸の配置というのも十分大事な表現なんですね.
これを見た人は,コンピュータの例題でよく出てくるライフゲームを作りたくなるかもしれません.しかし,ビスケットではライフゲームを作るのは結構難しいです.難しい理由の一つは画面全体で同期をとることができないからです.非同期のライフゲームのほうが本当の生物のルールっぽいんですけどね.