スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

階層型状態遷移機械実装してみた

HSM - GameObj - Trac (http://gameobj.issei.org/trac/wiki/HSM)を参考に階層型状態遷移機械を実装してみたらしい。以下のように使える。多分、メソッド自体に各状態をメソッド自体で表現して、なおかつ振る舞いも持たせたかったんだと思う。LimeWireなんかのソースを見ると非同期IOで状態遷移機械を使っていて、あぁやっぱり同じ事考えるんだなぁとか思ったけど、この実装は埋もれたままだったのでどうせなら公開しておく。
class ExampleStates
  : public StateMachine<ExampleStates>
{
public:
  void Opened(Activity a) {
    switch (a) {
    case FSM::SM_ENTRY :
      break;
    case FSM::SM_EXIT :
      break;
    case FSM::SM_DO :
      transit(&ExampleStates::Closed);
      break;
    }
  }

  void Closed(Activity a) {
    switch (a) {
    case FSM::SM_ENTRY :
      break;
    case FSM::SM_EXIT :
      break;
    case FSM::SM_DO :
      transit(NULL);
      break;
    }
  }
};
...
ExampleStates* fsm = new ExampleStates();
fsm->startUp(&ExampleStates::Opened);
while (!fsm->isFinalState()) {
  fsm->perform();
}
ソース
スポンサーサイト

ソートいろいろ

ソートについて

ソース付。パフォーマンスの比較も。バケットソートが圧倒的にいいと のことだが、コムソートもかなり良い。メモリもそんなに食わないのを 考えるとコムソートでもいいのでは。
参照元:アルゴリズム - tueda_wolfの日記


パラメトリック曲線

よく利用される曲線。
  • エルミート(Hermite)曲線
  • ベジェ(Bezier)曲線
  • 有理ベジェ(rational Bezier)曲線
  • Bスプライン(B-spline)曲線
表現する対照を扱うモデリング

4-4-3のところ

曲線 - ゲームプログラムめも日記

ソース付の解説

コムソート

コムソート速ぇ。コードもすっきりしてるし、quickソートよりも速度で劣ると はいえ良い感じ。気に入りました。
コムソート - Wikipedia


配列内のデータをソートする(コムソート)


乱数

カルドセプトが騒がれているのでメモ。同じような失敗したことがある気が するので笑えない...(;´Д`A ```アウアウ
そういえば、アルゴリズム系の本持ってるのに乱数載ってた。

良い乱数・悪い乱数


SHA1

■アルゴリズム

■解説

■実装
  • SHA
  • MMXを用いた実装もあり。


  • SHA-1 Implementation
  • オリジナルのコピー?...でもソースコード中のライセンスがオリジナルのものだろうか、良い感じなライセンスにみえる。使えるかも。


ユニークIDの発行について

ユニークIDの発行には、phpだとuniqid()とかあるのでそれを利用。
乱数なり、ハッシュなりでIDを生成しても、一意性を保障するために既に生成されたIDと衝突しないかチェックが必要。
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。