Поиск по сайту Поиск

Как сделать игру «Змейка» на Python

Помните аркадную игру «Змейка», в которую когда-то играли на неубиваемой нокии? Оказывается, что написать классическую «змейку» сможет каждый новичок. О том, как сделать змейку на Python и накормить ее яблоками, расскажет Настя Мартынова — веб-писатель REG.RU.

Змейка (Snake) — это игра, созданная Танели Арманто в 1997 году специально для телефона Nokia. Змейка стала переломным моментом в развитии мобильного гейминга и завоевала сердца миллионов людей. Несмотря на свою примитивность, даже спустя 25 лет эта игра остается популярной. 

Хоть Танели Арманто и считается создателем змейки, идея игры ему не принадлежит. Первый вариант змейки появился аж в 1976 году и назывался Blockade. После были созданы десятки клонов этой игры с разными названиями. Арманто при создании игры вдохновился одним из таких клонов, который был установлен на его Apple Macintosh. А мы вдохновились Танели Арманто и решили рассказать, как сделать игру змейка самостоятельно! С этим справятся даже те, кто только недавно начал изучать программирование.

Для создания змейки можно использовать разные языки программирования. Мы будем использовать… питон 🐍!  Язык программирования Python универсален: он подходит как для решения повседневных задач, так и для создания простых игр. 

Змейку на Python можно написать несколькими способами. Первый — при помощи библиотеки Python PyGame, которую используют для создания игр. Второй — с помощью встроенной библиотеки Turtle. В статье мы опишем второй способ. 

Помимо Turtle, мы будем использовать два других модуля:

  1. Time — для добавления задержки в выполнении программы.
  2. Random — для генерации случайного числа/цвета/формы.

Какие инструменты нам понадобятся:

  • редактор исходного кода на ваш выбор. Можно воспользоваться редактором VSCode или средой разработки PyCharm;
  • установленный Python 3.

Как работает игра «Змейка»

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

Для написания игры мы проделаем следующие шаги:

  • импортируем модули в программу,
  • создадим экран игры с помощью модуля Turtle,
  • зададим кнопки направления движения змеи,
  • реализуем игровой процесс.

Прежде всего создайте файл snakegame.py в вашем редакторе кода. А затем приступайте к созданию змейки по нашей инструкции. 👇

Импортируем модули

В этой части кода мы импортируем 3 модуля — turtle, time и random. Помимо этого, мы зададим значения по умолчанию: 

  • начальный счет — score, 
  • наибольший счет — high score,  
  • время задержки — delay.

Добавим в Python строки кода:

Создаем экран игры

Теперь создадим экран игры — укажем размер экрана, цвет фона и название программы. В функции wind.tracer установим значение задержки обновления экрана.

После создадим змею. Метод penup() тут нужен для того, чтоб змейка не рисовала линию при движении, а goto(x,y) задает координаты, которые перемещают змею в абсолютное положение.

Также добавим еду и счетчик, который будет отображать текущий и рекордный счет. 

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

программирование игры «Змейка» для новичков

Задаем кнопки направления движения змеи

Тут мы зададим клавиши направления, при нажатии на которые змейка будет двигаться. В нашем случае кнопки будут следующими: «W» — вверх, «A» — влево, «S» — вниз, «D» — вправо.

Реализуем игровой процесс

Теперь нам нужно реализовать геймплей. Он включает в себя следующие пункты:

  1. Длина змейки увеличивается каждый раз, когда она собирает еду. При этом хвост и голова змейки должны отличаться по цвету. 
  2. Счет увеличивается каждый раз, когда змея подбирает еду. Наибольший результат записывается.
  3. Должна быть добавлена проверка на столкновение головы змейки с телом или стеной.
  4. Цвет и форма еды должны меняться при каждом перезапуске игры.
  5. Игра начинается заново, если змея столкнулась с собой или стеной.
  6. В случае столкновения счетчик обнуляется, наибольший результат сохраняется до перезапуска.

Добавим оставшуюся часть нашего Python-кода:

Важно добавить функцию wind.mainloop() в конце, иначе окно будет закрываться сразу после запуска.

В этом фрагменте кода мы устанавливаем случайную позицию для еды на экране. Каждый раз, когда змея собирает пищу, ее тело увеличивается. Тело по цвету отличается от головы, в нашем случае оно будет оранжевым.

После того как змея соберет еду, еда появится в случайном месте в пределах 270 координат. Каждый раз, когда змея подбирает еду, счет игрока увеличивается на 10. Когда змея сталкивается с хвостом или стеной, счет игрока обнуляется, на экране сохраняется наибольший счет.

Теперь наша змейка на Python готова. 

программирование игры «Змейка» для новичков

⌘⌘⌘

Надеемся, вам было весело создавать игру и программировать на Python вместе с нами.

А какой рекорд в змейке поставили вы? Поделитесь в комментариях!

УПД в бухгалтерии: когда один документ может заменить несколько

Многие предприниматели жалуются на сложный и слишком изобильный документооборот: много документов приходится оформлять. Но при этом российское законодательство дает возможность...
Read More

Что такое роялти, как их рассчитать и кому они выгодны

Чтобы легально пользоваться результатами чужого труда в своем бизнесе, нужно за это заплатить. И неважно, идет ли речь о дизайне...
Read More

Франшиза: что это, как работает и стоит ли начинать такой бизнес

Франшизы предоставляют предпринимателям возможность использовать популярные бренды, эффективные бизнес-модели и поддержку со стороны материнской компании. Но за эти привилегии придется...
Read More

Какие компании называют вендорами и как они работают

Некоторые компании сосредотачивают в своих руках и производственные мощности, и права на то, что на них производят, и репутацию, которой...
Read More

Обособленное подразделение: как открывать и ставить на учет части компании

У любой компании есть адрес, по которому она «прописана», то есть зарегистрирована в ЕГРЮЛ. Но склад и офис с бухгалтерами...
Read More

С какого возраста можно открыть ИП и как это правильно сделать

Подросток может заниматься бизнесом, но с учетом важных условий, прописанных в законе. Разбираемся, как несовершеннолетнему стать предпринимателем, что такое эмансипация,...
Read More

Коносамент — главный документ морских грузоперевозок

Ежедневно по морю перевозят десятки, а то и сотни тысяч контейнеров с грузами. Чтобы партия товара, изготовленная, например, в Китае,...
Read More

Лучшая система налогообложения для вашего бизнеса. Как выбрать?

Одна из главных головных болей любого предпринимателя — уплата налогов. И дело даже не в том, что кому-то не хочется...
Read More

Фискальный чек — что это, зачем нужен и что будет, если его не выдать

Кто-то выкидывает их сразу возле кассы, кто-то тщательно собирает, чтобы потом проанализировать траты за месяц, кто-то даже не забирает их...
Read More

Расчет заработной платы по окладу в 2024 году: как понять, сколько заработал сотрудник

Вряд ли будет преувеличением сказать, что для многих самое важное в работе — это цифры в сообщении о начислении зарплаты....
Read More