fc2ブログ

ウディタ中級者になるためのその1 ~ビット積~

週一くらいでブログ更新したいなぁとか思いつつ、ゲ製のほうはあんまり面白いネタもないので、ウディタ技術紹介という体でお茶を濁すの巻。
ちょっとハイレベルなコモンを自作したいなぁと思っている人向けに、クサいところをつく技術をちょっとだけ紹介しようと思います。
文章が長いので以下は追記で↓
まず条件分岐にある「ビット積を満たす」の項目。
以前自分もよくわからなくて調べたんですが、それでもわからなかったので、直感的に書きます。
ビット積の条件分岐に主に用いられるのは、2のX乗の数です。
ある数を構成している2のX乗のことを、ビット積を満たすという(らしい)です。

訳がわからんのでサンプル。
とりあえず1,2,4,8で考えてみましょう。
1+2=3ですね。
ということで、「3は1と2のビット積を満たす」ことになります。
言葉では難しくてもようはこういうことですね。
同じように、
1+4=5なので、5は1,4のビット積を満たします。
6は2,4の、12は4,8のビット積を満たします。
ちなみに1+2+4=7なので、7は1,2,4のビット積を満たします。

で、これが何に使えるかというと、複数の条件判定を一度にできるということです。
たとえば、上下左右にランダムに出入り口のある部屋を考えてみます。
上に1,下に2,左に4,右に8という数値を与えておき、出入り口がある場合は数値を加算します。
上のみに入り口があれば1、上下にあれば3、全部にあれば15です。

で、この部屋の出入り口の状態を取得したいときは、格納されている数値がそれぞれ1,2,4,8のビット積を満たすかどうか判定するだけでOKです。
なんとなく便利な感じがするでしょ?
ということで、オンオフのような二元的条件を複数同時に判定したいような場合には、ビット積を使ってみるといいかもですね。

…なんか長いですが、もう一個くらい。
今度はアルゴリズムの話です。
みなさん、あるデータを昇順にソートするときにどうしてますか?
こういうときにはバブルソートというアルゴリズムが使えます。
可変データベースのあるデータの1から99番に格納されている数値を昇順ソートすることを考えてみます。
手順は、

1から99の項目について、前の項目の数値があとの項目の数値より小さい場合、そのふたつの項目の数値を入れ替える(項目1に3が格納されていて、項目2に10が格納されている場合、項目1に10を、項目2に3を入れ替える)。

上の手順で、一度でも入れ換えていたら最初に戻って、昇順になっているか確認する。
一度も入れ換えてなかったら昇順ソートが終わっているということなので終了。

これは基本システムを改造しているときに学んだアルゴリズムですね。
戦闘時に敏捷性の高い順にソートするときにつかわれていたはず。

システム自作したい人は、学ぶことが多いので、一度基本システム改造のゲームをつくってみることをおすすめします。
関連記事
スポンサーサイト



コメントの投稿

非公開コメント

Twitter
カテゴリ
最新コメント
月別アーカイブ
カウンター
検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QR