Змейка на Python за 5 минут [ Pygame ]

preview_player
Показать описание
В этом видео узнаете как сделать игру "Змейка" (Snake) на Python, используя библиотеку Pygame.
Pygame это удобная библиотека для создания несложных игр, превосходно подходит для начинающих программировать на языке Python (Пайтон, "Питон").
Чтобы установить Pygame, напечатайте в терминале и нажмите Enter: "pip install pygame" (без кавычек)
Код "Змейки":

#standalonecoder
Рекомендации по теме
Комментарии
Автор

Ну, сам ты конечно не за 5 минут сделал всё)) больна быстро пишешь, хотя, никто не отменяет того факта что ты нейросеть написанная на пайтоне))))

MotodorXL
Автор

Скоро ты станешь популярным, а я буду говорить что я олд

lyudochkas
Автор

то чувство когда сделали змейку за 5 минут, а я делал свой первый калькулятор минут 40

kerr
Автор

код змейки:
import pygame
from random import randrange
RES = 800
SIZE = 50
x, y = randrange(0, RES, SIZE), randrange(0, RES, SIZE)
apple = randrange(0, RES, SIZE), randrange(0, RES, SIZE)
dris = {'W': True, 'S': True, 'A': True, 'D': True}
length = 1
snake = [(x, y)]
dx, dy = 0, 0
fps = 10

pygame.init()
sc = pygame.display.set_mode([RES, RES])
clock = pygame.time.Clock()

while True:

# рисуем змейку
[(pygame.draw.rect(sc, pygame.Color('green'), (i, j, SIZE, SIZE))) for i, j in snake]
pygame.draw.rect(sc, pygame.Color('red'), (*apple, SIZE, SIZE))
# определение движения змеи
x += dx * SIZE
y += dy * SIZE
snake.append((x, y))
snake = snake[-length:]
# поедание яблока
if snake[-1] == apple:
apple = randrange(0, RES, SIZE), randrange(0, RES, SIZE)
length += 1
fps += 1
# конец игры
if x < 0 or x > RES - SIZE or y < 0 or y > RES - SIZE:
break
if len(snake) != len(set(snake)):
break



pygame.display.flip()
clock.tick(fps)

for event in pygame.event.get():
if event.type == pygame.QUIT:
exit()

# управление
key = pygame.key.get_pressed()
if key[pygame.K_w] and dris['W']:
dris = {'W': True, 'S': False, 'A': True, 'D': True}
dx, dy = 0, -1
if key[pygame.K_s] and dris['S']:
dx, dy = 0, 1
dris = {'W': False, 'S': True, 'A': True, 'D': True}
if key[pygame.K_a] and dris['A']:
dx, dy = -1, 0
dris = {'W': True, 'S': True, 'A': True, 'D': False}
if key[pygame.K_d] and dris['D']:
dx, dy = 1, 0
dris = {'W': True, 'S': True, 'A': False, 'D': True}

nothing_void_empty
Автор

Видео: у нас на это уйдёт 5 мин
Я который переписывал это 2, 5ч : аа, понимаю

comingflex
Автор

Когда я писал код я прокачался и понял некоторые моменты, которые я не знал. СПАСИБО АВТОРУ!;)
P.S: Уже подписан, лайк гарантирован

iliausr
Автор

Я это видео использую для проверки продвежения в изучении Пайтона.,
Спасибо тебе, добрый человек!

rviooid
Автор

шикарно, но теперь надо компилировать чтоб работал в любом устройстве без питона, и добавить функцию когда игрок проиграет, начать заново

idctmko
Автор

Можешь потом сделать 2-ю часть где доработаешь ее. Например добавишь кнопку рестарт, добавишь пару картинок и баллам например, ну и впринципе улучшишь ее до уровня пушка. Спасибо огромное очень помок. Удачи во всем!!!!

kripovender
Автор

Яблоки спавнятся периодически в змее, надо фиксить

sandel
Автор

Adorei a forma como você desenvolveu o jogo... obrigado por legendar o video ^^

diegoqueiroz
Автор

Привет!Я знаю что это видео вышло давно, но я все равно хочу тебя отблагодарить так как у меня давно не получалось сделать змейку потому что у меня была не та версия Python.ОГРОМНОЕ спасибо тебе!!!

vevdmxs
Автор

Блин спасибо мужик за помощь, Подписка и лайк обеспечены

Rgon
Автор

Можно ещё сделать рестарт игры послр проигрыша а то игроку придется закрывать игру и заново открывать, а так же что бы рекорд сохранялся и на него можно было ровняться во время игры))

distortion
Автор

Очень крутое видео. Жаль, что раньше на ваш канал не наткнулся.

skeleton_man
Автор

У меня проблема. Почему то когда моя змейка подходит к левому краю карты игра закрывается, хотя она(змейка) даже не совсем дошла до конца, клетки одной не хватило

alengrigoryants
Автор

кто нибудь может кинуть полный рабочий код? я долблюсь головой об стену не понимаю почему у меня не работает. Буду благодарен

mkoghio
Автор

Спасибо вам за этот видеоурок и за все остальные тоже. Скажите, пожалуйста, из каких соображений для отслеживания нажатий клавиш вы использовали key.get_pressed() ? Как я заметил метод get.event() обработки событий действуют точнее, пользуясь вашим способом у меня почему-то периодически нажатия не считываются, как бы, чувствительность слабая, объясните и это тоже

livhzue
Автор

нельзя использовать просто apple = randrange(SIZE, RES - SIZE, SIZE), randrange(SIZE, RES - SIZE, SIZE) при выборе места для очередного яблока.
так оно может заспавниться прямо на змее.

constant_teen
Автор

It's funny how YouTube recommended me one of your videos, but I like them.
Saludos desde Venezuela

CrusherKingZ