import random

import pygame


WIDTH = 1266
HEIGHT = 668
FPS = 85

white = (255, 255, 255)
black = (0, 0, 0)
red = (255, 0, 0)
green = (0, 255, 0)
blue = (0, 0, 255)
Yellow = (245, 130, 0)


class Player(pygame.sprite.Sprite):
    def __init__(self):
        pygame.sprite.Sprite.__init__(self)
        self.image = pygame.Surface((15, 15))
        self.image.fill(green)
        self.rect = self.image.get_rect()
        self.kord = [WIDTH / 2, HEIGHT / 2]
        self.dx = 0
        self.dy = 0
        self.body = []
        self.lenght = 1
        self.score = 0
        self.speed = 15
    def update(self):
        self.rect.y += self.dy
        self.rect.x += self.dx

        self.body.append([self.rect.x, self.rect.y])
        if len(self.body)>self.lenght:
            del self.body[0]
        for segment in self.body[:-1]:
            if segment[0] == self.rect.x and segment[1] == self.rect.y:
                return False
            return True
    def draw_body(self, surface):
        for segment in self.body[:-1]:
            pygame.draw.rect(surface, black, segment[0], segment[1], 15, 15)
    def grow(self):
        self.lenght += 1
        self.score += 1

class MEAT(pygame.sprite.Sprite):
    def __init__(self):
        pygame.sprite.Sprite.__init__(self)
        self.image = pygame.Surface((15, 15))
        self.image.fill(red)
        self.rect = self.image.get_rect()
        self.PODKIDYSH()
    def PODKIDYSH(self):
        self.rect.x = random.randrange(0, WIDTH - 15, 15)
        self.rect.y = random.randrange(0, HEIGHT - 15, 15)



pygame.init()
pygame.mixer.init()
screen = pygame.display.set_mode((WIDTH, HEIGHT))

pygame.display.set_caption("зМеЙкА")


#fon2 = pygame.fill(black)
clock = pygame.time.Clock()
Meats = pygame.sprite.Group()
all_S = pygame.sprite.Group()
meat = MEAT()
player = Player()
Meats.add(meat)
all_S.add(player, Meats)

running = True
while running:
    clock.tick(FPS)
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False
        if event.type == pygame.KEYDOWN:
            if event.key == pygame.K_w and snake.dy == 0:
                player.dy = -15
                player.dx = 0
            elif event.key == pygame.K_s and snake.dy == 0:
                player.dy = 15
                player.dx = 0
            elif event.key == pygame.K_a and snake.dx == 0:
                player.dx = -15
                player.dy = 0
            elif event.key == pygame.K_d and snake.dx == 0:
                player.dx = 15
                player.dy = 0

    all_S.update()

    if player.update():
        running = False
    if player.rect.x < 0 or player.rect.x >= WIDTH or player.rect.y < 0 or player.rect.y >= HEIGHT:
        running = False

    hits = pygame.sprite.spritecollide(player, meat, True)
    if hits:
        player.grow()
        meat = MEAT()
        Meats.add(meat)
        all_S.add(Meats)

    screen.fill(black, (0, 0))
    all_S.draw(screen)
    Player.draw_body(screen)
    pygame.display.flip()

    font = pygame.font.SysFont("Arial", 25)
    score_text = font.render(f"Счёт: {player.score}", True, black)
    dis.blit(score_text, [10, 10])

    pygame.display.update()
    clock.tick(speed)



pygame.quit()