['music', 'meditation', 'science experiments', 'painting', 'expression']
Vull crear un programa que simuli un ecosistema simple amb preses i depredadors, on cada animal es mou aleatòriament en una graella. El codi funciona, però tots els animals acaben superposant-se a la mateixa cel·la. 

```python
import random

GRID_SIZE = 10
NUM_PREY = 10
NUM_PREDATORS = 5

class Animal:
    def __init__(self):
        self.x = random.randint(0, GRID_SIZE - 1)
        self.y = random.randint(0, GRID_SIZE - 1)

    def move(self):
        self.x = random.randint(0, GRID_SIZE - 1)
        self.y = random.randint(0, GRID_SIZE - 1)

prey = [Animal() for _ in range(NUM_PREY)]
predators = [Animal() for _ in range(NUM_PREDATORS)]

for _ in range(100):
    for animal in prey + predators:
        animal.move()

    # ... (rest of the code to display the grid)
```
El problema és que estàs assignant una nova posició aleatòria a cada animal en cada moviment, independentment de la seva posició actual. Has de modificar el mètode `move` per a que es mogui només una cel·la a la vegada:

```python
import random

# ... (rest of the code)

class Animal:
    # ... (rest of the code)

    def move(self):
        directions = [(0, 1), (0, -1), (1, 0), (-1, 0)]
        dx, dy = random.choice(directions)
        self.x = (self.x + dx) % GRID_SIZE
        self.y = (self.y + dy) % GRID_SIZE

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