トップ «前の日記(2013/01/16) 最新 次の日記(2013/01/18)» 編集

SikabaneWorksが関係するコンテンツ(主に*band系ローグライク)の開発近況・補足から全く個人的な雑記まで。

[WEB:屍の見える丘公園]| [RSS]

Angband | Badiashimshe | C# | CRAUZEL | D'angband/小説草稿 | D'angband/開発 | DarkSouls | Demon'sSouls | DungeonCrawl | ElvenUteruses | Haskell | Hengband | J9シリーズ | LEGO | LineDrawing | MISC | MTG | Mac | Math | Moria | R-18 | Roguelike | Rough | RoughSketch | Ruby | SDL | UNIX | VMware | WarHammer | Zangband | アタシラヂョウヲウ | イラスト | ガジェット | ゲーム | ゲーム紹介 | ゲーム製作技術 | ゲーム論 | スケッチ | ツクール | テクノロジー | ニコニコ動画 | ファルコム | ファンタジー | ヴィーヤウトゥムノ | 別記事追加予定 | 変愚蛮怒 | 変愚蛮怒/スポイラー | 変愚蛮怒/元ネタ探訪 | 変愚蛮怒/攻略 | 変愚蛮怒/開発 | 宗教 | 情報 | 政治 | 文字コード | 日ペ昔話 | 東方ワンドロ | 東方外法漢女 | 歴史 | 漫画製作 | 版権絵 | 画像処理 | 翻訳 | 自然言語 | 艦隊これくしょん | 落書き | 言語解析 | 読書 | 超人ロック | 軍事 | 追記予定 | 通信 | 阿片窟 | 馬鹿馬鹿蛮怒/開発 | 魔法少女まどか☆マギカ | 魚類版深夜の真剣お絵描き60分一本勝負


2013/01/17

[変愚蛮怒/スポイラー]build_type7()/build_type8()の部屋生成プロセス(変愚蛮怒 Ver2.1.1)

この両関数は、双方ともvaultの生成を行うものだが、内容としてはv_info.txt上で生成条件を7の時にするか、8の時にするかの違いがあるのみで、生成処理そのものは全く同一であった。なのでまとめて説明してしまう。

build_type7()/build_type8()内の処理

  • v_info.txtから一様ランダムに一つvaultのデータを取得し、それがbuild_type7あるいはbuild_type8用のものであるまで試行をSAFE_MAX_ATTEMPTS(5000回)繰り返す。
  • 繰り返しても得られなければ生成キャンセル。
  • 回転や反転を行うフラグのために0~7の乱数を振る。
  • 横が広すぎて、90/270度回転すると、ダンジョンの縦に入りきらないのなら、90/270度回転のフラグはキャンセルする。
  • coord_trans()関数による処理。
    • フラグ値を4で割った余り値分だけ、90度ずつ回転する。
    • 4で割って1ならy軸対称に反転する。
  • こうして確定したサイズに、当てはまる余地がフロアに残っていない場合は生成キャンセル。
  • 以上で問題が無ければbuild_vault()関数で生成。

build_vault()関数による実際の生成処理

v_info.txt上で定められた以下の地形定義に従って生成する。

'%'花崗岩の壁(外壁)
'#'花崗岩の壁(内壁)
'$'ガラスの壁(内壁)
'X'永久壁(内壁)
'Y'ガラスの永久壁(内壁)
'*'75%でアイテム、25%でトラップ
'+'隠しドア
'\'カーテン
'^'トラップ
'p'パターンのスタート地点
'a'パターンの道中1
'b'パターンの道中2
'c'パターンの道中3
'd'パターンの道中4
'P'パターンの終点
'B'パターンの脱出点
'A'パターンの報酬アイテム(階+12レベルのGOOD/GREATアイテム)
'&'階+5レベルのモンスター
'@'階+11レベルのモンスター
'9'階+9レベルのモンスター&階+7レベルのGOODアイテム
'8'階+40レベルのモンスター&階+20レベルのGOOD/GREATアイテム
','50%の確率で階+3レベルのモンスター、さもなくば50%の確率で階+7のレベルのアイデム、さもなくば何もなし