unite-life-game

と、いう事で unite.vimライフゲームをつくってみました。
ライフゲームについてはここら辺を読んでみてください。
最初に言い訳しておくと結構アレな感じになってしまったのでレスポンスは悪いです。

[コマンド]

:Unite life-game:■ -update-time=10 -cursor-line-highlight=Normal

引数で生死の表記を変えることが出来ます。
自分で設定する場合は、

:Unite life-game:■:□ -update-time=10 -cursor-line-highlight=Normal

とかが見やすいと思います。

[操作方法]

スタート/ストップ 1キー
ランダム配置 2キー
リセット 3キー
配置 マウスの左クリック

自分で設置したい場合は、

  1. 1キーでストップ
  2. 3キーでリセット
  3. マウスの左クリックで設置
  4. 1キーでスタート

という手順です。
あとレスポンスがすこぶる悪いので何回かキー入力しないと反応がないかも知れません。

[注意]

ウィンドウのサイズに比例して起動します。
あまり大きなウィンドウだと重くなります。
あと unite.vim を終了させる場合は、q を連打しないとダメかも知れません。


と、こんな感じ。
ライフゲーム自体の処理はそんなに難しくなかったんですが、キー入力回りをやろうとしたら色々と手間取ってしまった。
あと中途半端に構造化したので結構ソースが残念な感じに…。
保持している値をどうやって参照するのかが難しいですね(+ self 付けるのめんどくさい。