さらいの洞窟のサライムシ

今回からは洞窟生成アルゴリズムの実用的な使い方について書きます。理屈の説明は最小限にとどめようと思います。

 

さらいの洞窟ではたまに敵が少なくなることがあり、そのような配置でプレイすることはスコアアタックにおいては時間の無駄でしかありません。今回はさらいの洞窟で敵が足りるかどうかをすぐに見分ける方法について書きます。

 

まず、さらいの洞窟の地形について簡単におさらいします。この洞窟は三つの広場から構成され、使われる広場には次の3種類があります。

f:id:fuji_luck:20210101192201p:plain

ポッドを置ける広場

f:id:fuji_luck:20210101192320p:plain

クロワッサン(俗称)

f:id:fuji_luck:20210101192400p:plain

さらい山(俗称)

ただし、座標はポッド、間欠泉、Hard Enemy、Door Enemyのみ記しました。また、これらのY座標はすべて0なので省略しました。

 

ポッドは一番上の図の広場にしか置くことができないので、この広場は必ず一つ以上存在します。今回はスコアアタックのための応用編ということで、以下では残りの二つの広場がどちらもポッドが置かれている部屋に隣接している(間に余計な広場や通路がない)場合のみを考えることにします。

間欠泉は、ポッドからの距離の制約があるため、今回の場合ポッドと同じ部屋に置かれることはありません。さらいの洞窟では袋小路に間欠泉が置かれることもないので、ポッドが置かれていない残りの二つの広場のうちどちらか一方に間欠泉が置かれます。

 

それでは、どのような場合に敵が少なくなるかを見ていきます。

このフロアにはHard Enemyが8体設定されており、オオマンマン→サクレウラメ×2→トテツチホカシ×2→サクレウラメ×2→サライムシという順番になっています。したがって、フロア中にあるHard Enemyの地点(図の赤丸)のうち敵を置くことができるものが8個より少なければ、後ろのサライムシから順に消えてしまいます。

 

Hard Enemyを置くことができなくなる条件として次の二つがあります。

1.ポッドからの距離が300未満
2.間欠泉からの距離が200未満

この距離に相当する円を、あらかじめ先ほどの図に載せておきました。これを踏まえてHard Enemyを実際に置くことができる地点の数をまとめると、

ポッドを置ける広場(ポッドがあるとき) 0
ポッドを置ける広場(間欠泉があるとき) 3
ポッドを置ける広場(どちらもないとき) 5
クロワッサン(間欠泉があるとき) 4
クロワッサン(間欠泉がないとき) 6
さらい山(間欠泉があるとき) 3
さらい山(間欠泉がないとき) 4

となります。ただし、この距離の制約は別の部屋にも影響をもちます。具体的に言うと、次の三つの場合にはさらに敵が減ることになります。

f:id:fuji_luck:20210101202515p:plain

距離268

f:id:fuji_luck:20210101202533p:plain

距離278

f:id:fuji_luck:20210101202547p:plain

距離271

 

以上を踏まえて、あり得る(良)地形について敵が足りるかどうかを考えると次のようになります。

 

【クロワッサンもさらい山もあるとき】
クロワッサンがポッドから一番近い接続口に接続している場合は敵が足りない可能性があり、間欠泉がさらい山にあると仮定してプレイしてよい。それ以外の場合は間欠泉の位置によらず敵が全部存在する。

f:id:fuji_luck:20210101213650p:plain

間欠泉がさらい山に出ないと敵が消える地形

 

【さらい山がないとき】
間欠泉の位置によらず敵が全部存在する。

 

【クロワッサンがないとき】
常に敵が足りない可能性があり、間欠泉がさらい山にあると仮定して動いてよい。ただし、間欠泉がさらい山にあってもダメなパターンが一つだけ存在する。

f:id:fuji_luck:20210101213750p:plain

間欠泉がさらい山に出ないと敵が消える地形。右下は例外