メッセージ

2015年05月23日の記事

2015/05/23(土)インスタンスDマップ解析

インスタンスDマップ解析

※昔、内輪向けに作った資料を再編集して掲載

インスタンスダンジョンでマップみえーるを使うとマップが全て見えるようになりますが、ワープポイントは見えないので大マップ上で繋がっているよう見えても実際には繋がっていないということがあります。

そこで、マップ生成ルールを使って、ルートを絞り込む方法を解説します。

マップ生成ルール解説

説明の便宜のため

  • 接続点候補=大マップ上で繋がっているよう見えるマップ境界
  • 接続点=実際に繋がっているマップ境界
  • 外れ=実際には繋がっていないマップ境界

とします。

インスタンスダンジョンは、以下のようなルールでマップが生成されます。(3つめの大部屋ルールは、インスタンスダンジョンによっては数が違うかもしれません。)

  • ルール0: ゴール部屋までには、必ず大部屋を2つ経由する(ゴール部屋は3部屋目の大部屋)
  • ルール1: 行き止まりは必ず3つめの大部屋(ゴール部屋も大部屋の一種と見なせる)
    • ただし、大マップの端の方では例外有り
  • ルール2: 逆に、3つめの大部屋以外(1~2つめの大部屋、小部屋、通路)は必ず2箇所以上で接続される
  • ルール3: スタート部屋を起点として見たとき、分岐後に合流することは無い

このルールをもう少し細かく見ると以下のような法則が導かれます。

  • ルール1より
    • a) ゴール部屋と接続点候補が1カ所だけの大部屋→3つめであることが確定
    • b) ゴール部屋と3つめだと分かっている大部屋→1カ所の接続点が確定したら、他の接続点候補は全て外れ
  • ルール2より
    • c) 接続点候補が2カ所だけの通路(=分岐無し)や小部屋→両接続点候補が接続点に確定
    • d) 接続点候補が2カ所だけの3番目では無い大部屋→両接続点候補が接続点に確定
  • ルール3より
    • e) 分岐後に合流しているように見える接続点候補→外れ確定

このルールを繰り返し適用することで、ルートが絞り込まれ、運が良ければゴールまでのルートが確定します。

例1
  1. 下のマップを例にします(スタート左上)。一見北ルートと、南ルートの2通り。
    map1_step0.png
  2. 法則c),d)を使って、接続点を確定させます(図中の青線)。大部屋が何部屋目かも判明した範囲で記入。?の所はどちらか片方が外れなので、この時点で北ルートはありません。
    map1_step1.png
  3. 少し難しいですが、ゴール部屋が3番目になるためには、1部屋目からまっすぐ右の部屋が2部屋目である必要があります。(北から回り道して3部屋目だと仮定すると、ゴール部屋を3部屋目にできない。)
    map1_step2.png
  4. あまり意味は無いですが、残りのルートもつなげてみます。
    map1_step3.png
例2
  1. これも一見北ルートと、南ルートです。なお、スタート部屋は右側が接続点です。
    map2_step0.png
  2. 法則c),d)を使って、接続点を確定させます(明らかに正解ルートと無関係の箇所は一部省略)。法則b)で確定する外れも赤の×印を付けます。
    map2_step1.png
  3. 法則a)やスタートから数えることで、大部屋順序を記入します。中心付近の3番目であることが確定した大部屋は、上の通路と接続しているので、法則b)により下の大部屋とは接続されません。これで北ルートが正解であることが分かります。
    map2_step2.png

なお、この2つの例の場合、不正解ルートだと「ゴール部屋がどうしても4部屋目になってしまうのでおかしい」という考え方でも、絞り込みできます。この場合こっちの方が簡単ですね^^;