private void createLogicalMaze(MazeCell cell) { cell.Visited = true; List <MazeCell> un = unvisitedNeighbors(cell); if (un.Count == 0) { return; } MazeCell nxt = un[Random.Range(0, un.Count)]; cell.DisableWall(cell.OnSide(nxt)); nxt.DisableWall(nxt.OnSide(cell)); _cellStack.Push(cell); createLogicalMaze(nxt); if (_cellStack.Count > 0) { createLogicalMaze(_cellStack.Pop()); } }