# ==========================================================
# РОЛЬ 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)