import pygame


WIDTH = 480
HEIGHT = 600
FPS = 60

WHITE = (255,255,255)
BLACK = (0,0,0)
RED = (255,0,0)
GREEN = (0,255,0)
BLUE = (0,0,255)
DARK_VIOLETT = (51,15,98)
PTNK = (255,192,203)
YELLOW = (255,255,0)
PURPLE = (128,0,128)

pygame.init()
pygame.mixer.init()
screen = pygame.display.set_mode((WIDTH,HEIGHT))
pygame.display.set_caption("Змейка<3")
clock = pygame.time.Clock()

snake_block = 10
snake_speed = 15


class Snake(pygame.sprite.Sprite):
    def __init__(self):
        super().__init__()
        self.image = pygame.Surface((snake_block,snake_block))
        self.image.fill(GREEN)
        self.rect = self.image.get_rect()
        self.rect.x = WIDTH/2
        self.rect.y = HEIGHT/2
        self.dx = 0
        self.dy = 0
        self.body = []
        self.lenght = 1
        self.score = 0
    def update(self):
        keystate = pygame.key.get_pressed()
        if keystate[pygame.K_LEFT]:
            self.speedx -= 10
        if keystate[pygame.K_RIGHT]:
            self.speedx += 10
        self.rect.x = self.speedx
        if self.rect.right > WIDTH:
            self.rect.right = WIDTH
        if self.rect.left <0:
            self.rect.left = 0
    def shoot(self):
        bullet = Bullet(self.rect.centerx,self.rect.top)
        all_sprites.add(bullet)
        bullets.add(bullet  )




all_sprites = pygame.sprite.Group()
snake = Snake()
all_sprites.add(player)



running = True
while running:
    clock.tick(FPS)
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False
        elif event.type == pygame.KEYDOWN:
            if event.key == pygame.K_SPACE:
                player.shoot()
    all_sprites.update()
    font_name = pygame.font.match_font('arial')
    def draw_text(surf,text,size,x,y):
        font = pygame.font.Font(font_name,size)
        text_surfase = font.render(text,False,WHITE)
        text_rect = text_surfase.get_rect()
        text_rect.midtop = (x,y)
        surf.blit(text_surfase, text_rect)

    hits = pygame.sprite.groupcollide(bullets, mobs,  False , True    )
    for hit in  hits:
        score = score + 1
        m = Mob()
        all_sprites.add(m)
        mobs.add(m)

    hits = pygame.sprite.spritecollide(player,mobs,False)
    if hits:
        running = False

    screen.fill(DARK_VIOLETT)
    all_sprites.draw(screen)
    draw_text(screen,str(score),40,WIDTH/2,10)
    pygame.display.flip()

pygame.quit()