もとネタ http://www.terrypaton.com/flipit/ マスをクリックすると,そのマスと周囲のマスの色が反転する. 全部同じ色にすることが目的. HaskellでGUIプログラミングしてみた. 結果 見た目は以下. 実行時の引数でサイズを変更できる. cairoというベクター画像のライブラリを使用しているので,ウィンドウのサイズ変更に合わせて描画も変化. 感想 Monadばっか. かなり手続的である(IOArrayを使ったからか). チートモードも作りたかったが,有限体(今回は0-1の2元体)上のガウスの消去法の実装は面倒.ピボット選択とかランクとか.というか実数上でも面倒なことに今さらながら気がついた. サイズが5以上になると難しい.私はもう解けない(というより,解こうという気力がなくなる). 使用したもの ghc 6.12.1 gtk2hs 0.10.1 ソースコ