/// <summary> /// Generates a square maze using Prim's Algorithm /// </summary> public void Generate() { Random random = Utils.Random; Grid = Utils.InitializeMatrix(m_size, WALL); Tuple <int, int> startingCoords = new Tuple <int, int>(random.Next(m_size), random.Next(m_size)); Grid[startingCoords.Item1][startingCoords.Item2] = PASSAGE; List <DoubleCell> frontier = GetNeighborCells(startingCoords); while (frontier.Count > 0) { DoubleCell curCell = frontier[random.Next(frontier.Count)]; if (Grid[curCell.X2][curCell.Y2] == WALL) { Grid[curCell.X1][curCell.Y1] = PASSAGE; Grid[curCell.X2][curCell.Y2] = PASSAGE; frontier.AddRange(GetNeighborCells(curCell.Cell2).Where(w => GetCell(w.Cell2) == WALL)); } frontier.Remove(curCell); } }
private List <CellInfo> GetDoubleCellInfo(int cellCount) { for (int i = 0; i < cellCount; i++) { DoubleCell doubleCell = new DoubleCell(0.001); Global.LocalStorage.SaveDoubleCell(doubleCell); } var cells = Global.LocalStorage.GetEnumerator(); List <CellInfo> cellInfoList = new List <CellInfo>(); while (cells.MoveNext()) { cellInfoList.Add(cells.Current); } return(cellInfoList); }