Город МОСКОВСКИЙ
00:04:08

Как написать Змейку на Python за 5 минут? | Уроки Pygame для новичков

Аватар
PYTHON CODE
Просмотры:
55
Дата загрузки:
06.06.2026 19:42
Длительность:
00:04:08
Категория:
Технологии и интернет

Описание

Всем привет! В этом видео мы с нуля напишем полноценную игру «Змейка» на Python с помощью библиотеки Pygame. И всё это займет у нас всего 25 строк кода!

Я подробно и по шагам объясню каждую строчку кода, так что ролик идеально подойдет даже для самых начинающих программистов.

Пишите в комментариях, какую игру вы хотите написать в следующем видео! Ставьте лайки и подписывайтесь на мой канал на RuTube, чтобы не пропустить новые видео!

💻 ПОЛНЫЙ КОД ИЗ ВИДЕО:

import pygame as pg, random as r

# Инициализируем графику, создаём окно 600 на 600 пикселей и настраиваем таймер скорости
pg.init(); screen = pg.display.set_mode((600, 600)); clock = pg.time.Clock()

# Задаём размер одной клетки, создаём тело змейки и направляем её вправо
S, snake, dx, dy = 20, [100, 100], [80, 100], [60, 100]], 20, 0

# Пишем короткую функцию, которая будет генерировать яблоко случайно по сетке экрана
def new_food(): return [r.randint(0, 29) * S, r.randint(0, 29) * S]

# Создаём самое первое яблоко на карте
food = new_food()

# Запускаем главный игровой цикл
while True:
# Проверяем нажатие клавиш-стрелок и блокируем разворот змейки в саму себя
for e in pg.event.get():
if e.type == pg.QUIT: pg.quit(); exit()
if e.type == pg.KEYDOWN:
if e.key == pg.K_UP and dy==0: dx, dy = 0, -S
elif e.key == pg.K_DOWN and dy==0: dx, dy = 0, S
elif e.key == pg.K_LEFT and dx==0: dx, dy = -S, 0
elif e.key == pg.K_RIGHT and dx==0: dx, dy = S, 0

# Движение змейки: вычисляем координаты новой головы и добавляем её в начало списка
snake.insert(0, [snake[0][0] + dx, snake[0][1] + dy])

# Если голова змейки оказалась на еде — спавним новое яблоко
if snake[0] == food: food = new_food()
# Иначе просто удаляем кусочек хвоста, чтобы змейка двигалась вперёд
else: snake.pop()

# Проверяем, врезалась ли змейка в стены или укусила свой хвост — если да, то закрываем игру
if (snake[0][0] ﹤ 0 or snake[0][0] ﹥= 600 or snake[0][1] ﹤ 0 or snake[0][1] ﹥= 600 or snake[0] in snake[1:]):
print("Конец игры! Ставьте лайк!"); pg.quit(); exit()

# Очищаем экран от старых кадров, заливая его тёмным цветом
screen.fill((20, 20, 20))

# Рисуем красную еду и в цикле перерисовываем всю змейку зелёными квадратами
pg.draw.rect(screen, (255, 50, 50), (food[0], food[1], S-2, S-2))
for b in snake: pg.draw.rect(screen, (50, 220, 50), (b[0], b[1], S-2, S-2))

# Обновляем кадр на экране и задаем скорость — игра автоматически вызывается каждые 100 миллисекунд (10 FPS)
pg.display.flip(); clock.tick(10)

Рекомендуемые видео