同一設計図*3のチームで、敵チーム3機のうち1機をランダムに選んでロックしたい。
これは現在作成中のダークコフィンに実装させたい機能だ。
同じ機体*3のチームが、前衛にオプションに誘導妨害装置を持つ機体を出すなどしてミサイル対策しているのをなんとか打破したい。
敵機体ロック→ターゲット識別番号取得→チャンネル送信
とすると1番機から処理するため、必ず3番機のロックした機体の番号がチャンネルに送信されてしまう。
確率分岐チップとstopチップで作っていたが、これでは確率が偏るのでちょっと気持ち悪い。
あれこれ考えて確率1/3に出来た。

詳細は「続きを読む」の中に。

最初に各機体にカウンタAに違う値を持たせる。
カウンタAを使ってカウンタでターゲットロックし、全機違う敵機体をロックする。
乱数(1〜99999の整数)をカウンタAで割った余りがカウンタBに入り、1番機が0、2番機が0〜1、3番機が0〜2になる。
1番機のターゲット番号がチャンネルに送られ、続いて1/2の確率で2番機の番号が、その後1/3の確率で3番機の番号が送られる。
3番機は処理が最後なので、最後にチャンネル1に3番機のターゲットがあるのは1/3の確率。
2番機は、2/3の確率で3番機がチャンネル送信しなかった時、1/2の確率で送信するため、チャンネル1に2番機のターゲットがあるのは1/3の確率。
1番機は必ず送信するため、1/3の確率になる。

ターゲットのチェックも行っているので、チップ数をかなり省けた。
やってることは簡単だが、なんだかちょっと嬉しい。
2008 04/29 03:00:00 | CHP(雑感) | Comment(0)
Powerd by バンコム ブログ バニー

この記事へのコメント

この記事にコメントする

名前:
メールアドレス:
URL:
セキュリティコード  
※セキュリティコードとは不正アクセスを防ぐためのものです。
画像を読み取り、入力して下さい。

コメント:
タグ挿入

サイズ
タグ一覧
Smile挿入 Smile一覧