Ejemplo n.º 1
0
    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());
        }
    }