['music', 'meditation', 'science experiments', 'painting', 'expression']
He creat un programa que genera un laberint aleatori i després intenta resoldre'l, però sembla que l'algoritme de resolució (Depth-First Search) no funciona correctament. Pots ajudar-me a trobar l'error?

```python
import random

def generate_maze(width, height):
    # ... (Code for generating the maze)

def solve_maze(maze, start, end):
    stack = [start]
    visited = set()

    while stack:
        x, y = stack.pop()
        visited.add((x, y))

        if (x, y) == end:
            return visited

        # Explore neighbors
        for dx, dy in [(0, 1), (0, -1), (1, 0), (-1, 0)]:
            nx, ny = x + dx, y + dy
            if 0 <= nx < len(maze[0]) and 0 <= ny < len(maze) and maze[ny][nx] == 0 and (nx, ny) not in visited:
                stack.append((nx, ny))

    return None

# ... (Code for creating and displaying the maze)
```
El problema és que estàs utilitzant `stack.pop()` per extreure els elements de la pila, el que la converteix en una cua FIFO. Per a Depth-First Search, necessites una pila LIFO. Utilitza `stack.pop(-1)` per extreure l'últim element afegit:

```python
import random

# ... (rest of the code)

def solve_maze(maze, start, end):
    # ... (rest of the code)

    while stack:
        x, y = stack.pop(-1)  # Use pop(-1) for LIFO behavior
        # ... (rest of the code)

# ... (rest of the code)
```