“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.