public RecursiveBacktrackerGenerator(CellSelector firstCellSelector    = null,
                                      CellSelector leftCellSelector     = null,
                                      NeighborSelector neighborSelector = null,
                                      bool trackGenerationPath          = false)
     : base(trackGenerationPath)
 {
     this.firstCellSelector = firstCellSelector ?? RandomCellSelector;
     this.leftCellSelector  = leftCellSelector ?? RandomCellSelector;
     this.neighborSelector  = neighborSelector ?? RandomNeighbourSelector;
 }
 public GrowingTreeGenerator(CellSelector firstSelector        = null,
                             CellSelector carvingCellSelector  = null,
                             CellSelector leftCellSelector     = null,
                             NeighborSelector neighborSelector = null,
                             bool trackGenerationPath          = false)
     : base(trackGenerationPath)
 {
     this.firstSelector       = firstSelector ?? RandomCellSelector;
     this.carvingCellSelector = carvingCellSelector ?? RandomCellSelector;
     this.leftCellSelector    = leftCellSelector ?? RandomCellSelector;
     this.neighborSelector    = neighborSelector ?? RandomNeighbourSelector;
 }
示例#3
0
        internal static MazeGenerator.NeighborSelector CreateNeighborSelector(
            NeighborSelector type,
            float parameter = 1)
        {
            switch (type)
            {
            case NeighborSelector.Random:
                return(_neighborSelectors[type]);

            default:
                throw new ArgumentException();
            }
        }