🎮 Как сделать игру на питоне Змейку - пошаговая инструкция для начинающих разработчиков!

Для создания игры "Змейка" на Python можно использовать библиотеку Pygame. Вот пример простой реализации:

import pygame
import random

# Инициализация окна игры
pygame.init()
width, height = 640, 480
screen = pygame.display.set_mode((width, height))

# Цвета
black = pygame.Color(0, 0, 0)
white = pygame.Color(255, 255, 255)
red = pygame.Color(255, 0, 0)

# Позиция и размер змейки
snake_position = [100, 50]
snake_body = [[100, 50], [90, 50], [80, 50]]

# Позиция и размер фрукта
fruit_pos = [random.randrange(1, width // 10) * 10, random.randrange(1, height // 10) * 10]
fruit_spawned = True

# Направление и скорость змейки
direction = 'RIGHT'
change_to = direction
snake_speed = 15

# Функция для обновления экрана
def update_screen():
    screen.fill(black)
    for pos in snake_body:
        pygame.draw.rect(screen, white, pygame.Rect(pos[0], pos[1], 10, 10))
    pygame.draw.rect(screen, red, pygame.Rect(fruit_pos[0], fruit_pos[1], 10, 10))
    pygame.display.flip()

# Главный игровой цикл
while True:
    for event in pygame.event.get():
        if event.type == pygame.KEYDOWN:
            if event.key == pygame.K_UP and direction != 'DOWN':
                change_to = 'UP'
            if event.key == pygame.K_DOWN and direction != 'UP':
                change_to = 'DOWN'
            if event.key == pygame.K_LEFT and direction != 'RIGHT':
                change_to = 'LEFT'
            if event.key == pygame.K_RIGHT and direction != 'LEFT':
                change_to = 'RIGHT'

    # Обновление направления
    direction = change_to

    # Обновление позиции змейки
    if direction == 'UP':
        snake_position[1] -= 10
    if direction == 'DOWN':
        snake_position[1] += 10
    if direction == 'LEFT':
        snake_position[0] -= 10
    if direction == 'RIGHT':
        snake_position[0] += 10

    # Увеличение размера змейки
    snake_body.insert(0, list(snake_position))
    if snake_position[0] == fruit_pos[0] and snake_position[1] == fruit_pos[1]:
        fruit_spawned = False
    else:
        snake_body.pop()

    # Появление нового фрукта
    if not fruit_spawned:
        fruit_pos = [random.randrange(1, width // 10) * 10, random.randrange(1, height // 10) * 10]
        fruit_spawned = True

    # Обновление экрана
    update_screen()

    # Завершение игры при столкновении с границей
    if snake_position[0] < 0 or snake_position[0] > width - 10 or snake_position[1] < 0 or snake_position[1] > height - 10:
        pygame.quit()
        exit()

    # Завершение игры при столкновении с телом змейки
    for block in snake_body[1:]:
        if snake_position[0] == block[0] and snake_position[1] == block[1]:
            pygame.quit()
            exit()
    
    # Задержка для установки скорости змейки
    pygame.time.Clock().tick(snake_speed)

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

Как сделать игру на питоне "змейку"

Змейка – одна из самых популярных игр, которую можно легко создать с использованием языка программирования Python. В этой статье мы расскажем вам, как разработать свою собственную игру "змейка" с использованием Python.

Необходимые инструменты

Для создания игры на питоне "змейка" вам потребуются:

  • Установленный интерпретатор Python
  • Библиотека Pygame

Установка библиотеки Pygame

Чтобы установить библиотеку Pygame, выполните следующие команды:


pip install pygame

Импорт библиотек и настройка экрана

Перед тем как начать разрабатывать игру, необходимо импортировать библиотеку Pygame и настроить основные параметры игрового экрана:


import pygame
import time

# Инициализация Pygame
pygame.init()

# Размеры экрана
width = 800
height = 600

# Цвета
white = (255, 255, 255)
black = (0, 0, 0)
red = (255, 0, 0)

Создание класса для змейки

Следующий шаг – создание класса для змейки. Здесь мы определим все необходимые методы и свойства, которые позволят управлять движением и отрисовкой змейки на экране:


class Snake:
    def __init__(self):
        self.length = 1
        self.positions = [((width // 2), (height // 2))]
        self.direction = random.choice([up, down, left, right])
        self.color = red
        self.score = 0

    def get_head_position(self):
        return self.positions[0]

    def move(self, dir):
        cur = self.get_head_position()
        x, y = self.direction
        new = (((cur[0] + (x*gridsize)) % width), (cur[1] + (y*gridsize)) % height)
        if len(self.positions) > 2 and new in self.positions[2:]:
            self.reset()
        else:
            self.positions.insert(0, new)
            if len(self.positions) > self.length:
                self.positions.pop()

    def reset(self):
        self.length = 1
        self.positions = [((width // 2), (height // 2))]
        self.direction = random.choice([up, down, left, right])
        self.score = 0

    def draw(self, surface):
        for p in self.positions:
            pygame.draw.rect(surface, self.color, (p[0], p[1], gridsize, gridsize))

Игровой цикл

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


def main():
    clock = pygame.time.Clock()
    screen = pygame.display.set_mode((width, height))
    pygame.display.set_caption('Змейка')
    snake = Snake()
    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.direction = up
                elif event.key == pygame.K_DOWN:
                    snake.direction = down
                elif event.key == pygame.K_LEFT:
                    snake.direction = left
                elif event.key == pygame.K_RIGHT:
                    snake.direction = right

        snake.move()
        # Другие действия (проверка столкновений, отрисовка фона и т.д.)

    pygame.quit()

if __name__ == '__main__':
    main()

Запуск игры

Чтобы запустить игру, вам нужно вызвать функцию main(), как показано ниже:


if __name__ == '__main__':
    main()

Заключение

Теперь вы знаете, как сделать игру на питоне "змейка". Успешно разработав свою собственную игру, вы можете дополнить ее дополнительными функциями и усовершенствованиями. Наслаждайтесь созданием игры и продолжайте развиваться в программировании!

Видео по теме

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

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

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

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

Узнайте, где водятся питоны и как ими не стать укушенными 🐍

🤖 Как выключить поток в python: простые и эффективные способы

🔓 Как открыть код библиотеки Python: подробное руководство

🎮 Как сделать игру на питоне Змейку - пошаговая инструкция для начинающих разработчиков!

🔐 Как в питоне поделить число: простое объяснение и примеры

🔍 Как выбрать элемент из списка python: подробное руководство и примеры

🔥 Как создать матрицу, полностью заполненную нулями в питоне 🐍