16/01/16 10:06:51.12 nb4XakV3.net
3Dダンジョンに関する要求については、>>526-527で書いているが、
このプログラムを作成するに際して、より詳細な検討を加えている。
まず、迷路を保持するデータ構造について説明するため、
迷路を構成する最小単位を便宜的に「セル」と呼ぶとする。
1つのセルには、必須データとして、
・セルの座標 x、y (xは東西方向、yは南北方向)
・セルの東西南北の境界表現(壁の有無、または扉)
を持たせている。
このセルを複数集めて、1つのフロアマップを形成している。
複数のセルの管理にはリンクドリストを使用していて、
任意の形、任意の広さのフロアを表現することが可能である。
と言っても、1フロアあたりせいぜい100セル程度に留めておきたい。
また、必要がある場合に限り、セルには以下の付帯情報を記憶させることが
できる仕組みになっている。
・天井と床の穴表現有効化フラグ
・ダークゾーンフラグ
・セルの名前
・イベント処理用スクリプト(任意行数のプログラムテキスト)
上述の試作プログラムでは、以上の情報を用いてマップデータの編集および
歩行移動テストが可能になっている。