ぷよぷよプロジェクト †

作成の流れ †

  1. モデル作成
  2. UIの作成
  3. 対戦する敵のアルゴリズム作成
  4. テスト&レビュー

こんなとこでしょうか? 1がおおよそ出来れば、2と3は同時並行できると思います。


参考 †

http://www13.plala.or.jp/kymats/study/game_other/TOKOPUYO/tokopuyo.html

もっと他にもあると思う

モデル †

type color = RED | BLUE | GREEN | YELLOW | SEE_THROUGH
type kind = NORMAL | JAMA
type puyo = { color : color; kind : kind }

こんな感じで。あとは空間とぷよの配置の定義すればおしまい。 配置から消えるぷよを求める関数とか作っとくと便利かな。

追記よろしく :)

空間とぷよ反応 †

type space = puyo list list
let react (p:ps) = ...

型spaceは空間を表す.

react : space -> option (int, space) を想定.結果がNONEの場合は反応なし/連鎖終了,SOME (pt,ps) の時は反応ありで得点と反応後の空間の対を返す.全体としてかなりでかい関数になると思われる.

あと画面のエフェクトを考えると,消えたぷよの位置のリストも返すようにすれば,消えたときのエフェクトも描きやすいだろうと思う.

ところでどうやって再帰で書くんだろう.

配列を使って破壊的なアルゴリズムを記述するなら,割に簡単にできそう (参考に挙げたページとか).(プログラム全体で配列を管理する必要は無く,あくまでもぷよの連鎖判定に (チェック済み部分を覚えておく為に) 配列を使うということ)

純粋関数的にやるとどうなる? Stateモナドを使うか,継続渡し形式でやるか…?

#ありがとうございます。すばらしいです。とってもいい感じだと思います。

ところで、上記の react 関数をエレガントに記述する為に、それ程難しくない、うまい方法があります。 別にもったいつける訳ではないのですが、皆さん少し考えてみると楽しいと思います。ヒントは「連結」です。


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS