Пример #1
0
        /// <summary>
        /// 指定したサイズに収まるランダムダンジョンを生成します。
        /// </summary>
        public static DungeonData DoGenerateDungeon(Size mapSize, int complexLevel)
        {
            int i;
            var map = new DungeonData(mapSize);

            for (i = 1; map.DoGenerate(complexLevel) == false && i <= MaxRebuildCount; i++)
            {
                //正常に生成されるまで繰り返す
                System.Diagnostics.Debug.WriteLine("ダンジョンの生成に失敗しました。再試行します... [" + i.ToString() + " 回目]");
            }

            if (i > MaxRebuildCount)
            {
                //作り直しの限界数に達した場合は中止する
                MessageBox.Show("ランダム生成中に何らかの問題があったため、処理を中断します。\r\n生成オプションを確認して下さい。", Resources.AppName, MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return(null);
            }

            return(map);
        }