Змеиная игра с использованием модуля Python

Я уверен, что это эссе будет полезно вам, если вы поклонник игры змей.. В этом посте я проведу вас по шагам создания простой игры, которую будет легко создать даже новичкам в Python.. Библиотека PyGame на Python, это пакет Python, который мы используем для разработки игр, это один из различных подходов к дизайну игры.

Использование библиотечной черепахи — дополнительная стратегия.. Благодаря этому модулю пользователи могут создавать графику и рисовать формы на онлайн-холсте., который уже установлен с Python. Так, в этом уроке, мы будем использовать библиотеку черепах для создания нашей основной змеи

Змеиная игра на Python

  • модуль времени. Этот метод позволяет нам отслеживать количество секунд, прошедших с предыдущего раза..
  • змея игра случайный модуль — Он создает случайные числа в Python.

Другие инструменты, которые вам потребуются, включают редактор текста, который вы предпочитаете.. Я буду использовать VSCode в этом посте. Конечно, вам потребуется для настройки Python 3 на вашем устройстве, если оно еще не установлено. Вы также можете скачать для установки компилятор Geekflare. Это может быть очень приятным опытом!

содержание

Как работает игра со змеями

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

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

  • Импорт в наши приложения предустановленных модулей (время черепахи, черепаха, а также рандом).
  • Отображение экрана игры создано с помощью модуля Turtle..
  • Установите клавиши для управления направлением движения змеи по экрану..
  • Реализация игры.

Создайте файл snapgame.py, в который мы добавим программу реализации..

Импорт модулей

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

import turtle
import random
import time

player_score = 0
highest_score = 0
delay_time = 0.1

Делаем экран игры

Модуль черепахи, который мы устанавливаем, позволяет нам создать виртуальный экран, который будет служить экраном окна игры.. Затем мы можем построить тело змеи., а также продукты питания, которые съест змея. На экране также будет отображаться счет трекера игрока..

# window screen created
wind = turtle.Screen()
wind.title("Snake Maze")
wind.bgcolor("red")

# The screen size
wind.setup(width=600, height=600)


# creating the snake 
snake = turtle.Turtle()
snake.shape("square")
snake.color("black")
snake.penup()
snake.goto(0, 0)
snake.direction = "Stop"

# creating the food
snake_food = turtle.Turtle()
shapes = random.choice('triangle','circle')
snake_food.shape(shapes)
snake_food.color("blue")
snake_food.speed(0)
snake_food.penup()
snake_food.goto(0, 100)

pen = turtle.Turtle()
pen.speed(0)
pen.shape('square')
pen.color('white')
pen.penup()
pen.hideturtle()
pen.goto(0, 250)
pen.write("Your_score: 0 Highest_Score : 0", align="center", 
font=("Arial", 24, "normal"))
turtle.mainloop()

Код в вышеупомянутом отрывке сначала устанавливает экран черепахи, а затем добавляет начальный заголовок и цвет фона.. Сначала мы выбираем размер, прежде чем рисовать форму змеи на нашем цифровом холсте.. Чтобы предотвратить создание линий во время движения черепахи, метод пенапа поднимает ручку черепахи.

С использованием техники goto, черепаха может быть направлена ​​в точное положение с помощью координат. Пища, которую ест змея, сделана нами.

Каждый раз, когда змея собирает пищу, мы хотим отобразить счет каждого игрока. Мы также хотим показать самый высокий балл, который человек получает во время игры.. По этой причине, мы используем ручки. Как ручка, писать. Опишите способ завершения.

Настройка клавиш направления для змейки

В этом случае, мы программируем определенные клавиши для управления движением змеи по экрану. Мы будем использовать письмо «л» как левый ключ, «р» слева, «U» вверх, а также «Д» вниз. Эти инструкции будут применяться на практике, вызывая змею с помощью функции направления черепахи..

Включите следующие примеры кода в свой.

# Assigning directions
def moveleft():
    if snake.direction != "right":
        snake.direction = "left"

def moveright():
    if snake.direction != "left":
        snake.direction = "right"

def moveup():
    if snake.direction != "down":
        snake.direction = "up"

def movedown():
    if snake.direction != "up":
        snake.direction = "down"

def move():
    if snake.direction == "up":
        coord_y = snake.ycor()
        snake.sety(coord_y+20)

    if snake.direction == "down":
        coord_y = snake.ycor()
        snake.sety(coord_y-20)

    if snake.direction == "right":
        coord_x = snake.xcor()
        snake.setx(coord_x+20)

    if snake.direction == "left":
        coord_x = snake.xcor()
        snake.setx(coord_x-20)

wind.listen()
wind.onkeypress(moveleft, 'L')
wind.onkeypress(moveright, 'R')
wind.onkeypress(moveup, 'U')
wind.onkeypress(movedown, 'D')

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

Реализация геймплея игры в виде змейки

Игру нужно будет преобразовать в живое действие после того, как будет установлена ​​​​основная структура.. Это то, что он будет включать:

  • увеличение длины змеи на другой цвет каждый раз, когда она потребляет пищу.
  • всякий раз, когда змея ест пищу, счет игрока увеличивается, и затем отслеживается наивысший балл.
  • Змею можно держать, чтобы защитить ее от ударов о стену или даже о собственное тело..
  • После удара змеи, игра продолжается.
  • Однако на экране, это наивысший результат игрока, даже если счет игрока сбрасывается до нуля при перезапуске игры..
segments = []

#Implementing the gameplay
while True:
    wind.update()
    if snake.xcor() > 290 or snake.xcor() < -290 or snake.ycor() > 290 or snake.ycor() < -290:
        time.sleep(1)
        snake.goto(0, 0)
        snake.direction = "Stop"
        snake.shape("square")
        snake.color("green")

        for segment in segments:
            segment.goto(1000, 1000)
            segments.clear()
            player_score = 0
            delay_time = 0.1
            pen.clear()
            pen.write("Player's_score: {} Highest_score: {}".format(player_score, highest_score), align="center", font=("Arial", 24, "normal"))

        if snake.distance(snake_food) < 20:
            coord_x = random.randint(-270, 270)
            coord_y = random.randint(-270, 270)
            snake_food.goto(coord_x, coord_y)

            # Adding segment
            added_segment = turtle.Turtle()
            added_segment.speed(0)
            added_segment.shape("square")
            added_segment.color("white")
            added_segment.penup()
            segments.append(added_segment)
            delay_time -= 0.001
            player_score += 5

            if player_score > highest_score:
                highest_score = player_score
                pen.clear()
                pen.write("Player's_score: {} Highest_score: {}".format(player_score, highest_score), align="center", font=("Arial", 24, "normal"))

    # checking for collisions
    for i in range(len(segments)-1, 0, -1):
        coord_x = segments[i-1].xcor()
        coord_y = segments[i-1].ycor()
        segments[i].goto(coord_x, coord_y)

    if len(segments) > 0:
        coord_x = snake.xcor()
        coord_y = snake.ycor()
        segments[0].goto(coord_x, coord_y)
    move()

    for segment in segments:
        if segment.distance(snake) < 20:
            time.sleep(1)
            snake.goto(0, 0)
            snake.direction = "stop"
            snake.color('white')
            snake.shape('square')

            for segment in segments:
                segment.goto(1000, 1000)
                segment.clear()
                player_score = 0
                delay_time = 0.1
                pen.clear()
                pen.write("Player's_score: {} Highest_score: {}".format(player_score, highest_score), align="center", font=("Arial", 24, "normal"))

     time.sleep(delay_time)

turtle.mainloop()

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

Когда змея собрала еду и не сталкивается, еда отображается в случайном месте в пределах 270-градусной координатной области размера экрана. Каждый раз, когда змея берет пищу, счет игрока увеличивается на 5. Если змея участвует в столкновении с игроком, их счет сбрасывается до 0 и экран держит высший балл.

Заключение

Библиотека черепах — это забавный и простой способ сделать игру со змеями, которую мы видели в этом уроке.. Вы также можете использовать библиотеку PyGame на Python для реализации той же игры.. Узнайте, как вы можете использовать игру по-другому, прочитав эти PyGame инструкции.

Скачать Snake Rivals Fun Snake Game

Snake Run Race 3D Беговая игра

Скачать Snake.io – веселые игры Snake .io