Игра на змия при използване на 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 със змии

Snake Run Race 3D игра за бягане

Изтеглете Snake.io – Забавни Snake .io игри