Создай игру змейку на Python
Привет, меня зовут Максим, и сегодня я расскажу вам о том, как создать простую игру ″Змейка″ на языке программирования Python. Я сам опробовал этот проект, и хочу поделиться своим опытом с вами.
Первым шагом в создании игры ″Змейка″ я создал поле для игры. Для этого я использовал библиотеку Pygame, которая предоставляет нам необходимые инструменты для реализации графического интерфейса игры. Я создал окно с размерами 800×600 пикселей и установил цвет фона.
python
import pygame
# Инициализация Pygame
pygame.init
# Создание окна
window_width, window_height 800, 600
window pygame.display.set_mode((window_width, window_height))
pygame.display.set_caption(″Змейка″)
# Установка цвета фона
background_color (0, 0, 0)
window;fill(background_color)
# Основной игровой цикл
running True
while running⁚
for event in pygame.event.get⁚
if event.type pygame.QUIT⁚
running False
pygame.display.update
# Выход из игры
pygame.quit
После создания поля, я приступил к созданию самой змейки. Я определил класс Snake, который будет отвечать за поведение и отрисовку змейки. Внутри класса я создал несколько методов⁚ метод для обновления положения змейки, метод для отрисовки змейки на экране и метод для проверки столкновения змейки со стенами или самой собой.
python
class Snake⁚
def __init__(self)⁚
# Начальные координаты и скорость змейки
self.x window_width / 2
self.y window_height / 2
self.speed 1
# Список сегментов змейки
self.segments [(self.x, self.y), (self.x ─ 10, self.y), (self.x ౼ 20, self.y)]
def update(self)⁚
# Обновление положения змейки
self.x self.speed
self.segments.pop(0)
self.segments.append((self.x, self.y))
def draw(self)⁚
# Отрисовка змейки на экране
for segment in self.segments⁚
pygame.draw.rect(window, (255, 255, 255), (segment[0], segment[1], 10, 10))
def check_collision(self)⁚
# Проверка столкновения змейки со стеной или самой собой
if (self.x < 0 or self.x > window_width or self.y < 0 or self.y > window_height
or len(self.segments) ! len(set(self.segments)))⁚
return True
return False
Дальше я создал класс Apple, который будет отвечать за появление яблок на поле. У каждого яблока есть свои координаты, которые генерируются случайно, и метод для отрисовки яблока на экране.
python
import random
class Apple⁚
def __init__(self)⁚
# Случайные координаты для яблока
self.x random.randint(0٫ window_width ─ 10)
self.y random.randint(0, window_height ౼ 10)
def draw(self)⁚
# Отрисовка яблока на экране
pygame.draw.rect(window, (255, 0, 0), (self.x, self.y, 10, 10))
В главном игровом цикле я добавил обработку движений змейки и ее столкновений с яблоком. Если змейка съедает яблоко, я увеличиваю ее длину и создаю новое яблоко на поле. Если змейка сталкивается со стенами или самой собой, игра заканчивается.
python
snake Snake
apple Apple
# Основной игровой цикл
running True
while running⁚
for event in pygame.event.get⁚
if event.type pygame.QUIT⁚
running False
elif event.type pygame.KEYDOWN⁚
if event.key pygame.K_LEFT⁚
snake.speed -10
elif event.key pygame.K_RIGHT⁚
snake.speed 10
elif event.key pygame.K_UP⁚
snake.speed -10
elif event.key pygame.K_DOWN⁚
snake.speed 10
snake.update
if snake.check_collision⁚
running False
if snake.segments[-1] (apple.x٫ apple.y)⁚
snake.segments.insert(0, (apple.x, apple.y))
apple Apple
window.fill(background_color)
snake.draw
apple.draw
pygame.display.update
# Выход из игры
pygame.quit
Таким образом, я создал простую игру ″Змейка″ на языке Python с полем для игры и счетом съеденных яблок. Этот проект помог мне лучше разобраться с классами, обработкой событий и отрисовкой графики с использованием библиотеки Pygame.
Я надеюсь, что данная статья поможет вам начать свое путешествие в мир разработки игр и применения языка Python. Удачи вам!