Без примера кода сложно дать точный ответ на первый вопрос. Возможно, проблема заключается в неправильной логике создания новых порций еды или в неправильном вызове этой функции.
Чтобы реализовать процесс "съедания" яблока змеей в игре на Python, после чего яблоко будет появляться в другом месте поля, вам необходимо выполнить следующие шаги:
1. Определить функцию "съедания" яблока змеей. Например, при съедании яблока змея вырастает на одну клетку и вызывается функция создания нового яблока.
2. Определить функцию создания нового яблока. Это может быть случайное место на игровом поле, но вне тела змеи.
3. Вызывать функцию создания нового яблока каждый раз после "съедания" предыдущего.
Примерный код:
```python
import random
def eat_apple(snake, apple):
snake.grow() # увеличить змею на одну клетку
apple.x = random.randint(0, WIDTH-1)
apple.y = random.randint(0, HEIGHT-1)
snake = Snake()
apple = Apple(random.randint(0, WIDTH-1), random.randint(0, HEIGHT-1))
while True:
# проверка на столкновение с яблоком
if snake.head() == apple:
eat_apple(snake, apple)
```
Это лишь примерный код, который вы можете доработать под свои нужды. Надеюсь, это поможет вам решить проблему. Если у вас есть конкретный код, с которым вы столкнулись с проблемой, пожалуйста, предоставьте его для получения более точного ответа.