Гра «Змійка» у використанні модуля Python

Я впевнений, що цей твір буде корисним для вас, якщо ви фанат гри в змій. У цій публікації я розповім вам про кроки створення простої гри, яку буде легко створити навіть новачкам Python. Бібліотека PyGame на Python, це пакет Python, який ми використовуємо для розробки ігор, є одним із різноманітних підходів до розробки гри.

Використання бібліотечної черепахи є додатковою стратегією. Завдяки цьому модулю користувачі можуть створювати графіку та малювати форми на онлайн-полотні, який уже встановлено з Python. Так, у цьому посібнику, ми використаємо бібліотеку черепах, щоб створити нашу фундаментальну змію

Гра «Змійка» на Python

  • модуль часу. Ця техніка дозволяє нам відстежувати кількість секунд, що минули з попереднього разу.
  • Випадковий модуль гри змії – Він створює випадкові числа в Python.

Інші інструменти, які вам знадобляться, включають редактор тексту, який ви віддаєте перевагу. У цій публікації я буду використовувати VSCode. Звичайно, вам знадобиться для налаштування Python 3 на вашому пристрої, якщо його ще не встановлено. Ви також можете завантажити компілятор Geekflare для встановлення. Це може бути дуже приємним досвідом!

зміст

Як працює гра змійка

Гравці повинні маніпулювати змією, щоб отримати їжу, яка відображається на екрані, щоб отримати найкращий результат у цій грі. Гравець керує змією, натискаючи одну з чотирьох кнопок напрямку, які вказують у напрямку руху змії.

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

  • Імпорт попередньо встановлених модулів у наші програми (час черепахи, черепаха, а також випадковий).
  • Екран гри створюється за допомогою модуля Turtle.
  • Встановіть клавіші, щоб контролювати напрямок руху змії по екрану.
  • Реалізація гри.

Створіть файл snakegame.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()

Код у вищезгаданому уривку спочатку встановлює черепаховий екран перед додаванням початкового заголовка та кольору фону. Спочатку ми вибираємо розмір, перш ніж намалювати форму змії на нашому цифровому полотні. Щоб запобігти створенню ліній під час руху черепахи, метод penup підбирає перо черепахи.

З використанням своєї техніки 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

Snake Run Race 3D Running Game

Завантажте Snake.io – Fun Snake .io Games