Igra zmija u korištenju Python modula

Uvjeren sam da će vam ovaj esej biti od pomoći ako ste ljubitelj igre zmija. Provest ću vas kroz korake stvaranja jednostavne igre u ovom postu koju će čak i početnici u Pythonu lako napraviti. PyGame biblioteka u Pythonu, koji je Python paket koji koristimo za razvoj igara, je jedan od različitih pristupa dizajniranju igre.

Korištenje bibliotečke kornjače je dodatna strategija. Korisnici mogu generirati grafiku i crtati forme na online platnu zahvaljujući ovom modulu, koji je već instaliran sa Pythonom. Dakle, u ovom tutorijalu, koristit ćemo biblioteku kornjača da napravimo našu osnovnu zmiju

Igra zmija u Pythonu

  • vremenski modul. Ova tehnika nam omogućava da pratimo koliko je sekundi prošlo od prethodnog puta.
  • zmija igra Random modul – Stvara nasumične brojeve u Pythonu.

Ostali alati koji će vam biti potrebni uključuju uređivač teksta koji vam se više sviđa. U ovom postu ću koristiti VSCode. Naravno, trebat će vam da biste postavili Python 3 na vašem uređaju ako ga već niste instalirali. Također možete preuzeti da biste instalirali Geekflare Compiler. Ovo bi moglo biti jako ugodno iskustvo!

sadržaj

Kako funkcioniše igra zmija

Igrači moraju manipulirati zmijom kako bi dobili hranu koja je prikazana na ekranu kako bi postigli najbolji mogući rezultat u ovoj igri. Igrač usmjerava zmiju pritiskom na jednu od četiri tipke za usmjeravanje koje pokazuju u smjeru kretanja zmije.

Zmija će biti uklonjena iz igre ako udari igrača ili neki predmet. Procedure koje ćemo koristiti za igranje ove igre idu naprijed.

  • Uvoz u naše aplikacije modula koji su unaprijed instalirani (vrijeme kornjače, kornjača kao i slučajni).
  • Ekran igre kreiran je pomoću modula Turtle.
  • Postavite tipke za kontrolu smjera kretanja zmije po ekranu.
  • Implementacija igre.

Kreirajte datoteku snakegame.py u koju ćemo dodati program za implementaciju.

Uvoz modula

Ovaj dio programa učitava vrijeme instalirano Python-om, kornjača, i nasumične module. dodatno, zadani brojevi za početni rezultat igrača, maksimalni rezultat koji mogu postići, i vrijeme koje igrač odlaže između svakog poteza će biti definirano. Kako bi se utvrdilo koliko je vremena kasnilo, potreban je vremenski modul.

import turtle
import random
import time

player_score = 0
highest_score = 0
delay_time = 0.1

Izrada ekrana igre

Modul kornjača koji instaliramo omogućava nam da kreiramo virtuelni ekran koji će služiti kao ekran prozora igre. Tada možemo izgraditi tijelo zmije, kao i namirnice koje će zmija pojesti. Na ekranu će se također prikazati rezultat igrača za praćenje.

# 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()

Kod u gore spomenutom izvodu prvo uspostavlja ekran kornjače prije dodavanja početnog naslova i boje pozadine. Prvo biramo veličinu prije nego što skiciramo oblik zmije na naše digitalno platno. Za sprječavanje pravljenja linija dok se kornjača kreće, penup metoda podiže kornjačino pero.

Uz korištenje svoje goto tehnike, kornjača se može usmjeriti na tačan položaj pomoću koordinata. Hrana koju zmija jede pravimo mi.

Svaki put kada zmija skuplja hranu, želimo prikazati rezultat svakog igrača. Takođe želimo da pokažemo najviši rezultat koji osoba dobije tokom igre. Iz ovog razloga, koristimo olovke. Kao olovka, pisati. Opišite metodu za završetak.

Postavljanje tipki za upute za zmiju

U ovom slučaju, programiramo određene tipke za kontrolu kretanja zmije po ekranu. Koristićemo pismo “L” kao levi taster, “R” za lijevo, “U” za naviše, i “D” za naniže. Ove upute će se provesti u praksi pozivanjem zmije pomoću funkcije usmjeravanja kornjače.

Uključite sljedeće primjere koda u svoj.

# 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')

Pokret() gore spomenuta funkcija omogućava kretanje zmije u položaju koji je specificiran unutar određene koordinate. Slušaj() funkcionira kao slušatelj događaja koji poziva metode koje usmjeravaju zmiju u određenom smjeru nakon što korisnik pritisne dugme.

Implementacija igre igre u obliku zmije

Igru će trebati pretvoriti u radnju uživo nakon što se uspostavi osnovna struktura. To je ono što će uključiti:

  • produžavajući dužinu zmije za drugu boju svaki put kada konzumira hranu.
  • kad god zmija pojede hranu, rezultat igrača se povećava, a zatim se prati najviši rezultat.
  • Zmija se može držati kako bi se zaštitila od udara o zid ili čak svoje tijelo.
  • Nakon što je udario zmiju, igra se nastavlja.
  • Međutim, na ekranu, je igračev najveći rezultat iako se rezultat igrača resetuje na nulu kada se igra ponovo pokrene.
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()

U gore navedenom isječku koda koji smo koristili, dodijelili smo nasumično mjesto za hranu zmije na ekranu. Svaki put kada zmija pojede hranu, tijelo raste u drugoj boji, bijela u ovom slučaju, da bi bilo jasno da je njegov rast izražen.

Kada zmija sakupi hranu i ne sudari se, hrana se prikazuje na nasumičnoj lokaciji unutar koordinatnog područja od 270 stepeni veličine ekrana. Svaki put kada zmija uzme hranu, rezultat igrača se povećava za 5. Ako je zmija uključena u sudar sa igračem, njihov rezultat se resetuje na 0 a ekran zadržava najviši rezultat.

zaključak

Biblioteka kornjača je zabavan i jednostavan način da napravite igru ​​zmija koju smo vidjeli u ovom vodiču. Također možete koristiti PyGame biblioteku u Pythonu za implementaciju iste igre. Saznajte kako možete drugačije koristiti igru ​​čitajući ove PyGame instrukcije.

Preuzmite Snake Rivals Fun Snake Game

Snake Run Race 3D igra za trčanje

Preuzmite Snake.io – Zabavne Snake .io igre