Как написать Змейку на Python за 5 минут? | Уроки Pygame для новичков
Описание
Всем привет! В этом видео мы с нуля напишем полноценную игру «Змейка» на 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)
Рекомендуемые видео


















