モンスター自然発生の位置
よく「10マス以内には沸かない」と言われ掛軸裏の稼ぎなどでも利用されていますが、実際どのように決定されるのでしょうか。
まず出現する位置の候補は次のように決められます。
フロアからランダムに座標を取得。(選択する範囲は外壁を含めたフロア全体から下の4ラインを除いた部分(2015/12/14追記)) そのマスに他のキャラがいるならやり直す。 そのマスが部屋でかつ店でないなら結果をこの座標として終了し、そうでないならやり直す。 ただし、やり直した回数が100回以上のときは通路(つるはし穴)・隠し通路・隠し部屋でも終了する。
最終的にモンスターが自然発生する位置は次の方法で決定します。
1.Rを20とする 2.候補となる座標を求め、それを(X,Y)とする。 3.|シレンのX座標-X| + |シレンのY座標-Y| >= R ならば(X,Y)にモンスター出現。 そうでないなら RにR-1を代入し、2へ飛ぶ
確率は低下しますが、シレンの近くに絶対に発生しないというわけではないということですね。また、つるはし穴や隠し通路に沸くこともあるということが分かります。
実はこのアルゴリズムはシレンがバネでワープする位置の決定と同じです。