Реализация игры «Змейка» на Python: примеры кода и методы

“Jugar al Snake” по-испански и означает “играть в змею” на английском языке. Вот несколько способов реализации игры «Змейка» вместе с примерами кода с использованием языка программирования Python:

Метод 1: использование библиотеки Pygame

import pygame
import time
# Snake class
class Snake:
    def __init__(self):
        self.body = [(200, 200), (210, 200), (220, 200)]
        self.direction = "RIGHT"
    def move(self):
        head = self.body[0]
        x, y = head
        if self.direction == "UP":
            y -= 10
        elif self.direction == "DOWN":
            y += 10
        elif self.direction == "LEFT":
            x -= 10
        elif self.direction == "RIGHT":
            x += 10
        self.body.insert(0, (x, y))
        self.body.pop()
    def change_direction(self, new_direction):
        if new_direction == "UP" and self.direction != "DOWN":
            self.direction = new_direction
        elif new_direction == "DOWN" and self.direction != "UP":
            self.direction = new_direction
        elif new_direction == "LEFT" and self.direction != "RIGHT":
            self.direction = new_direction
        elif new_direction == "RIGHT" and self.direction != "LEFT":
            self.direction = new_direction
    def draw(self, surface):
        for segment in self.body:
            pygame.draw.rect(surface, (0, 255, 0), pygame.Rect(segment[0], segment[1], 10, 10))
# Game initialization
pygame.init()
width, height = 400, 400
surface = pygame.display.set_mode((width, height))
snake = Snake()
# Game loop
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_UP:
                snake.change_direction("UP")
            elif event.key == pygame.K_DOWN:
                snake.change_direction("DOWN")
            elif event.key == pygame.K_LEFT:
                snake.change_direction("LEFT")
            elif event.key == pygame.K_RIGHT:
                snake.change_direction("RIGHT")
    snake.move()
    surface.fill((0, 0, 0))
    snake.draw(surface)
    pygame.display.update()
    time.sleep(0.2)
pygame.quit()

Метод 2: использование черепашьей графики

import turtle
import time
# Snake class
class Snake:
    def __init__(self):
        self.body = [(0, 0), (-20, 0), (-40, 0)]
        self.direction = "RIGHT"
    def move(self):
        head = self.body[0]
        x, y = head
        if self.direction == "UP":
            y += 20
        elif self.direction == "DOWN":
            y -= 20
        elif self.direction == "LEFT":
            x -= 20
        elif self.direction == "RIGHT":
            x += 20
        self.body.insert(0, (x, y))
        self.body.pop()
    def change_direction(self, new_direction):
        if new_direction == "UP" and self.direction != "DOWN":
            self.direction = new_direction
        elif new_direction == "DOWN" and self.direction != "UP":
            self.direction = new_direction
        elif new_direction == "LEFT" and self.direction != "RIGHT":
            self.direction = new_direction
        elif new_direction == "RIGHT" and self.direction != "LEFT":
            self.direction = new_direction
    def draw(self):
        for segment in self.body:
            turtle.goto(segment[0], segment[1])
            turtle.stamp()
# Game initialization
window = turtle.Screen()
window.title("Snake Game")
window.bgcolor("black")
window.setup(width=600, height=600)
window.tracer(0)
snake = Snake()
# Keyboard bindings
window.listen()
window.onkey(lambda: snake.change_direction("UP"), "Up")
window.onkey(lambda: snake.change_direction("DOWN"), "Down")
window.onkey(lambda: snake.change_direction("LEFT"), "Left")
window.onkey(lambda: snake.change_direction("RIGHT"), "Right")
# Game loop
running = True
while running:
    window.update()
    snake.move()
    time.sleep(0.2)
turtle.done()

Это всего лишь два примера реализации игры «Змейка» на Python. Существует множество других способов создания игры, например, использование графической библиотеки, такой как Pygame, или графического модуля черепахи. Предоставленные примеры кода послужат отправной точкой для создания собственной игры Snake.