Exemple #1
0
        /// <summary>
        ///     迷路を作成する。
        /// </summary>
        internal void Make()
        {
            if (!MazeCreater.CheckMazeSetting(this.SizeX, this.SizeY, this.StartX, this.StartY, this.GoalX, this.GoalY, out string strErrorMessage, out MazeErrorType? errorType))
            {
                throw new MazeException(strErrorMessage, errorType.Value);
            }

            this.FieldArray = new MazeFieldArray(this.SizeX, this.SizeY);

            //シード値がマイナス値の場合はシード値をランダムに作成する。
            Random randomSeed = new Random();

            if (this.Seed < 0)
            {
                this.Seed = randomSeed.Next();
            }

            this.random = new Random(this.Seed);

            this.MakeInit();
            this.MakeMain();
            this.MakeFinalize();
        }
Exemple #2
0
 /// <summary>
 ///     迷路の設定が適切かどうか確かめます。
 /// </summary>
 /// <param name="sizeX">Xサイズ</param>
 /// <param name="sizeY">Yサイズ</param>
 /// <param name="strErrorMessage">エラーメッセージ</param>
 /// <param name="errorType">エラーの種類</param>
 /// <returns>true 適切である, false 適切でない</returns>
 public static bool CheckMazeSetting(int sizeX, int sizeY, out string strErrorMessage, out MazeErrorType?errorType)
 {
     return(MazeCreater.CheckMazeSetting(sizeX, sizeY, 2, 2, sizeX - 3, sizeY - 3, out strErrorMessage, out errorType));
 }
Exemple #3
0
 /// <summary>
 ///     迷路を作成する。
 /// </summary>
 /// <param name="sizeX">Xサイズ</param>
 /// <param name="sizeY">Yサイズ</param>
 /// <param name="startX">スタートX座標</param>
 /// <param name="startY">スタートY座標</param>
 /// <param name="goalX">ゴールX座標</param>
 /// <param name="goalY">ゴールY座標</param>
 /// <returns>迷路オブジェクト</returns>
 public static MazeObject CreateMaze(int sizeX, int sizeY, int startX, int startY, int goalX, int goalY)
 {
     return(MazeCreater.CreateMaze(sizeX, sizeY, startX, startY, goalX, goalY, -1));
 }
Exemple #4
0
 /// <summary>
 ///     迷路を作成する。
 /// </summary>
 /// <param name="sizeX">Xサイズ</param>
 /// <param name="sizeY">Yサイズ</param>
 /// <param name="seed">シード値</param>
 /// <returns>迷路オブジェクト</returns>
 public static MazeObject CreateMaze(int sizeX, int sizeY, int seed)
 {
     return(MazeCreater.CreateMaze(sizeX, sizeY, 2, 2, sizeX - 3, sizeY - 3, seed));
 }
Exemple #5
0
 /// <summary>
 ///     迷路を作成する。
 /// </summary>
 /// <param name="sizeX">Xサイズ</param>
 /// <param name="sizeY">Yサイズ</param>
 /// <returns>迷路オブジェクト</returns>
 public static MazeObject CreateMaze(int sizeX, int sizeY)
 {
     return(MazeCreater.CreateMaze(sizeX, sizeY, -1));
 }