Вопрос задан 19.10.2026 в 11:05. Предмет Информатика. Спрашивает Ананян Лёва.

СРОЧНО!! ДАЮ 30 БАЛЛОВ!
Напишите код для Pygame для игры "змейка"
Желательно чтобы код был простым и не слишком длинным, заранее спасибо

Перейти к ответам

Ответы на вопрос

Отвечает Мурзин Егор.

Простой вариант игры «Змейка». Перед запуском установите библиотеку командой pip install pygame.

import pygame, random
pygame.init()
screen = pygame.display.set_mode((400, 400))
clock = pygame.time.Clock()
font = pygame.font.SysFont(None, 36)
cell = 20
snake = [(200, 200)]
food = (random.randrange(0, 400, cell), random.randrange(0, 400, cell))
dx, dy = cell, 0
run = True

while run:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            run = False
        if event.type == pygame.KEYDOWN:
            if event.key == pygame.K_UP and dy == 0: dx, dy = 0, -cell
            if event.key == pygame.K_DOWN and dy == 0: dx, dy = 0, cell
            if event.key == pygame.K_LEFT and dx == 0: dx, dy = -cell, 0
            if event.key == pygame.K_RIGHT and dx == 0: dx, dy = cell, 0

    head = (snake[0][0] + dx, snake[0][1] + dy)
    if head in snake or head[0] not in range(400) or head[1] not in range(400):
        run = False
    snake.insert(0, head)
    if head == food:
        food = (random.randrange(0, 400, cell), random.randrange(0, 400, cell))
    else:
        snake.pop()

    screen.fill((0, 0, 0))
    for part in snake:
        pygame.draw.rect(screen, (0, 200, 0), (*part, cell, cell))
    pygame.draw.rect(screen, (220, 50, 50), (*food, cell, cell))
    screen.blit(font.render(str(len(snake) - 1), True, (255, 255, 255)), (10, 10))
    pygame.display.flip()
    clock.tick(10)

pygame.quit()

Управление: стрелки на клавиатуре. Игра заканчивается при столкновении со стеной или со своим телом.

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос