Haskell de Pon
14/11/03はじめに
きっかけ
私はもうあまりゲームはやらなくなりました。でも、ふとした時、昔はまった’パネルでポン’というゲームが無性にやりたくなりました。面白かったけど、敷居が高かったためか、流行りはしなかった気がします。ゲームのルール
色のついた何種類かのパネルが存在し、プレーヤーは左右のパネルを入れ替えるだけで、縦横に同じパネルを3つ以上揃えるとパネルが消えるというものです。どんなものを作るか
早速、Wiiのバーチャルコンソールで遊んだんですが、3連鎖しかできません。このゲームの肝は、パネルが消えている最中にも、パネルを入れ替えられて、それでアクティブに連鎖を作っていけるという点です。でも、これがかなり難しい。そこで、ちょっとパネルに消えるのを待ってもらって、自分の消したいタイミングで消したいという自己満足を果たしたくなりました。
勉強中のHaskellで作ったら、どんな実装になるだろうかという勉強も兼ねて、作ってみました。
どうなったか
簡単なものですが完成しました。ですが、やはりアクティブ性が面白さの源でした。結果、面白くなくなりました。また、色なしのため、視認性に難ありで、これが難易度を上げています。操作方法
カーソルの移動
W | 上 |
S | 下 |
A | 左 |
D | 右 |
パネルの操作
J | 左右のパネルを交換 |
K | 並んだパネルを消す(連鎖を発動させる) |
L | パネルを1行せり上げる |
ソース
githubghcでコンパイルしたらできます。 Mac 10.9.2 で動作確認済。
実行ファイル
実行ファイル(Mac用)起動には任意の乱数シード値(整数)が必要です。 例えば、
./haspon 777
という感じです。 この数値によって、生成されるパネルのパターンが決まります。
所感
- これをコンピュータに操作させるプログラムを作れば、また勉強になると思う。
命令型言語に10年以上漬かってきたが、関数型言語であるHaskellでのプログラミングも結構慣れてきたきがする。しかし、もっとソースは綺麗に書けるはずだろう。他の人のソースを見て勉強したいが、どこを漁ればよいのか。やっぱりライブラリを見ればよいかな。とか言っているが、そもそも、もっと大規模な・役に立つ何かを作りたいと思っている。
- これを見て、ゲームを作ってみようと思い立ち、Haskellでプログラミングを初めるような人がいたらいいなと思う。プログラミングを始めるきっかけは、何か動いているものを見て、どんな仕組みで動いているのかという疑問を持つことから始まるとすれば、ゲームを見せるというのは効果的なはずだ。しかも、アスキーアートならば、自分でも作れるかもと思える。
- これみたいに、アスキーアートで済ませれば、ゲームの本質みたいなものはサクッと作れる。問題は、グラフィックを強化したり、ゲームシステムを凝ったものにしようとすると、途端に作業量が増えることだ。一人、かつ隙間時間でやっていたのでは、時間はあっという間にすぎていく。そして、挫折する。 アスキーアートでもなんでもよいので、プロトタイプを作ってみるってことは大事だ。膨大な時間を投資して、得られたものが何も面白くなかったら、本当に人生の無駄遣いだし。