Загрузка данных


# ==========================================================
# РОЛЬ 1 — Калашников: Food
# ==========================================================
class Food:
    def __init__(self):
        self.position = (5, 5)

    def spawn(self, snake_body):
        """Поставить еду в случайную свободную клетку."""
        # Подсказка 1: используй цикл while True
        while True:
            # Подсказка 2: случайные координаты в пределах поля
            col = random.randint(0, COLS - 1)
            row = random.randint(0, ROWS - 1)
            
            # Подсказка 3: если клетка НЕ занята телом змейки — выходим
            if (col, row) not in snake_body:
                self.position = (col, row)
                break
        
        # Бонус: после каждого поедания двигай еду дважды — «телепортирующаяся» еда
        # Второй спавн (телепортация)
        while True:
            col = random.randint(0, COLS - 1)
            row = random.randint(0, ROWS - 1)
            
            if (col, row) not in snake_body:
                self.position = (col, row)
                return

    def draw(self, surface):
        x = self.position[0] * CELL
        y = self.position[1] * CELL
        pygame.draw.rect(surface, FOOD_COLOR, (x + 2, y + 2, CELL - 4, CELL - 4), border_radius=6)
        # блик
        pygame.draw.circle(surface, (255, 200, 200), (x + CELL // 3, y + CELL // 3), 2)