あるたおるた - 障害物の配置

| トラックバック(0)

どうも あ〜る です。

久しぶりに、日本橋 改め あるたおるた(仮)のお話。
今回は障害物の配置についてです。
以前、障害物を配置すると敵から逃げやすくなるというような事を
書いたと思います。
じゃあ、実際どうやって配置するか?について考察してみました。

まず前提として、あるたおるたのフィールドはチップという単位で区切られています。
このチップ単位に障害物を配置します。

とりあえずランダムに置けばいいか、と思いきや早速問題が。
フィールドが分断されてしまうと
絶対取得出来ないアイテムが出来てしまって
クリア不能になってしまいます。

なので、
 ・あるた と おるた の初期配置位置はつながっている
 ・アイテムは あるた と おるた の初期配置位置とつながっているチップにしか配置できない
 ・敵も同様につながっているチップにしか配置出来ない
という条件を満たす必要があります。

ここで念のため、「つながっているチップ」とは
障害物で分断されておらず、必ずいずれかのチップを通過しながら
移動可能なチップ同士のことを指します。

さて、では あるた もしくは おるた とつながっているチップを
全て列挙するにはどうしたらいいでしょうか。

下の図のように考えました。
あるた からつながる進入可能なチップを探索していくという方式です。

obstacle_1.png

まず、全てのチップを未判定という状態とします。
次に障害物のあるチップを進入不可としておきます。
あるた の初期配置チップからスタートして
上下左右を順に調べ、進入不可になったら、それ以上進めないですから探索を終了します。
範囲外の場合も探索終了です。
また、既に進入可,不可が決まっていればそのチップから先の状態はわかっているはずなので
探索を終了していいですね。
それ以外は、そのチップを中心に上下左右に探索を広げます。

そして最後に、おるた の初期配置チップが進入不可なら、
またランダムに障害物を配置しなおして判定をやりなおします。
あるた から順に進入可のチップをたどっているので、
進入可のチップ同士はつながっています。
ですので、おるた のチップが進入可なら、あるた と おるた は
つながっているということになります。
あとは、進入可のチップにアイテムを配置すれば、
取得不可能なアイテムというのは発生しません。


次の図のように未判定の部分が残る場合がありますが、
探索終了後も未判定の部分はつながっていないチップなので、
進入不可と考えればいいでしょう。

obstacle_2.png


次の図のように あるた と おるた が分断されていると
おるた のチップが未判定という状態で探索が終了するので
つながっていないと判定され、再度やり直しとなります。

obstacle_3.png


ここまでの考察で、不都合なく障害物を配置することができそうです。
ということで、これは...再帰呼び出しの例題のような......。
ではコーディングしてきますー。

トラックバック(0)

トラックバックURL: http://kei-prj.com/mt/mt-tb.cgi/43