Как написать змейку на Python: пошаговое руководство для начинающих с простым кодом и изящными функциями

Для написания змейки на Python, вы можете использовать модуль Pygame для создания графического интерфейса и обработки событий. Ниже приведен пример кода:


import pygame
import time

pygame.init()

# Определение цветов
black = (0, 0, 0)
white = (255, 255, 255)
red = (255, 0, 0)

# Определение размеров окна
width = 800
height = 600

# Создание окна
game_display = pygame.display.set_mode((width, height))
pygame.display.set_caption("Змейка")

clock = pygame.time.Clock()

game_over = False

# Задание начальных координат змейки
x = width / 2
y = height / 2

# Задание начального смещения змейки
x_change = 0
y_change = 0

# Задание размера сегментов змейки
segment_size = 10

while not game_over:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            game_over = True
        elif event.type == pygame.KEYDOWN:
            if event.key == pygame.K_LEFT:
                x_change = -segment_size
                y_change = 0
            elif event.key == pygame.K_RIGHT:
                x_change = segment_size
                y_change = 0
            elif event.key == pygame.K_UP:
                y_change = -segment_size
                x_change = 0
            elif event.key == pygame.K_DOWN:
                y_change = segment_size
                x_change = 0

    # Обновление координат змейки
    x += x_change
    y += y_change

    # Очистка экрана
    game_display.fill(black)

    # Рисование змейки
    pygame.draw.rect(game_display, white, [x, y, segment_size, segment_size])

    # Обновление экрана
    pygame.display.update()

    # Ограничение частоты обновления экрана
    clock.tick(10)

# Завершение игры
pygame.quit()
quit()

    

Детальный ответ

Как написать змейку на Python

Змейка (Snake) является одной из самых популярных игр на компьютере. Создание собственной змейки на языке Python - интересный и простой проект, который поможет вам попрактиковаться в основах программирования и углубить свои навыки в языке Python.

Шаг 1: Настройка окружения

Прежде чем начать писать код змейки, необходимо установить Python на ваш компьютер, если у вас его еще нет. Вы можете скачать и установить Python с официального веб-сайта Python. Откройте командную строку или терминал и убедитесь, что Python установлен, введя команду:


python --version

Шаг 2: Импорт необходимых библиотек

Для разработки змейки вам понадобятся некоторые модули и библиотеки Python. Для этого будем использовать встроенные модули random и turtle. Импортируйте эти модули, добавив следующий код в начало вашего файла:


import random
import turtle

Шаг 3: Создание игрового окна

Для создания окна игры и змейки воспользуемся функциональностью модуля turtle. Добавьте следующий код после импорта модулей:


window = turtle.Screen()
window.title("Змейка")
window.bgcolor("black")
window.setup(width=600, height=600)
window.tracer(0)

Шаг 4: Создание змейки и управление ей

Перед созданием змейки определим ее основные параметры, такие как размер сегментов, скорость движения и начальную позицию. Для этого добавьте следующий код после предыдущего шага:


segment_size = 20
speed = 10

snake = []
head = turtle.Turtle()
head.speed(0)
head.shape("square")
head.color("white")
head.penup()
head.goto(0, 0)
head.direction = "stop"

Для управления змейкой нам понадобятся функции, которые будут реагировать на нажатия клавиш клавиатуры. Добавьте следующий код после создания змейки:


def go_up():
    if head.direction != "down":
        head.direction = "up"

def go_down():
    if head.direction != "up":
        head.direction = "down"

def go_left():
    if head.direction != "right":
        head.direction = "left"

def go_right():
    if head.direction != "left":
        head.direction = "right"

window.listen()
window.onkeypress(go_up, "w")
window.onkeypress(go_down, "s")
window.onkeypress(go_left, "a")
window.onkeypress(go_right, "d")

Шаг 5: Движение змейки

Чтобы змейка двигалась по игровому полю, добавьте следующий код после функций управления змейкой:


def move():
    if head.direction == "up":
        y = head.ycor()
        head.sety(y + segment_size)

    if head.direction == "down":
        y = head.ycor()
        head.sety(y - segment_size)

    if head.direction == "left":
        x = head.xcor()
        head.setx(x - segment_size)

    if head.direction == "right":
        x = head.xcor()
        head.setx(x + segment_size)

window.mainloop()

Шаг 6: Добавление еды и увеличение длины змейки

Чтобы змейка росла при поедании еды, добавьте следующий код в конце файла:


food = turtle.Turtle()
food.speed(0)
food.shape("circle")
food.color("red")
food.penup()
food.goto(0, 100)

def eat_food():
    if head.distance(food) < 20:
        x = random.randint(-280, 280)
        y = random.randint(-280, 280)
        food.goto(x, y)
        new_segment = turtle.Turtle()
        new_segment.speed(0)
        new_segment.shape("square")
        new_segment.color("white")
        new_segment.penup()
        snake.append(new_segment)

        for i in range(len(snake) - 1, 0, -1):
            x = snake[i - 1].xcor()
            y = snake[i - 1].ycor()
            snake[i].goto(x, y)

        if len(snake) > 0:
            x = head.xcor()
            y = head.ycor()
            snake[0].goto(x, y)

window.onkeypress(eat_food, "space")

Шаг 7: Реализация главного цикла игры

Добавьте следующий код в конец вашего файла, чтобы осуществить главный цикл игры:


while True:
    window.update()

    if head.xcor() > 290 or head.xcor() < -290 or head.ycor() > 290 or head.ycor() < -290:
        time.sleep(1)
        head.goto(0, 0)
        head.direction = "stop"

        for segment in snake:
            segment.goto(1000, 1000)

        snake.clear()

    if len(snake) > 0:
        x = head.xcor()
        y = head.ycor()
        snake[0].goto(x, y)

        for index in range(len(snake) - 1, 0, -1):
            x = snake[index - 1].xcor()
            y = snake[index - 1].ycor()
            snake[index].goto(x, y)

    move()

    for segment in snake:
        if segment.distance(head) < 20:
            time.sleep(1)
            head.goto(0, 0)
            head.direction = "stop"

            for segment in snake:
                segment.goto(1000, 1000)

            snake.clear()
    
    time.sleep(0.1)

Шаг 8: Запуск игры

Сохраните ваш файл с расширением .py, например, snake.py. Откройте командную строку или терминал в том каталоге, где находится ваш файл, и выполните следующую команду для запуска игры:


python snake.py

Поздравляю! Вы создали простую игру "Змейка" с использованием языка программирования Python. Надеюсь, вам понравился этот проект и вы смогли углубить свои навыки в программировании и освоить использование функций, классов и модулей языка Python. Удачи!

Видео по теме

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

Уроки Python / Как сделать игру Змейка (Мастер-класс)

Как сделать игру на Python под Android? (PyGame)

Похожие статьи:

🔍 Что создает функция path в Python? 🐍

🔑 Как сделать корень в Python: подробное руководство для начинающих

Как выбросить ошибку python: полное руководство с шагами и примерами 🐍❌🚫

Как написать змейку на Python: пошаговое руководство для начинающих с простым кодом и изящными функциями

🔐 Как закрыть приложение через Python? Простые способы для завершения процессов

Как писать сайты на Python: полезные советы для начинающих разработчиков

💻 Как считать количество символов в массиве python: полное руководство для начинающих