Python Modulundan İstifadədə İlan Oyunu

Əminəm ki, ilan oyununun pərəstişkarısınızsa, bu esse sizin üçün faydalı olacaq. Bu yazıda sizə hətta Python-a yeni başlayanların da asanlıqla yarada biləcəyi sadə bir oyun yaratmağın addımlarını izah edəcəyəm.. Python-da PyGame kitabxanası, oyunlar inkişaf etdirmək üçün istifadə etdiyimiz Python paketidir, oyunu dizayn etmək üçün müxtəlif yanaşmalardan biridir.

Kitabxana tısbağasından istifadə etmək əlavə strategiyadır. İstifadəçilər bu modul sayəsində onlayn kətan üzərində qrafiklər yarada və formalar çəkə bilərlər, artıq Python ilə quraşdırılmışdır. Belə ki, bu dərslikdə, əsas ilanımızı yaratmaq üçün tısbağa kitabxanasından istifadə edəcəyik

Pythonda ilan oyunu

  • vaxt modulu. Bu texnika bizə əvvəlki vaxtdan keçən saniyələrin miqdarını izləməyə imkan verir.
  • ilan oyunu Random modulu – Python-da təsadüfi ədədlər yaradır.

Tələb edəcəyiniz digər vasitələrə üstünlük verdiyiniz mətn üçün redaktor daxildir. Bu yazıda VSCode istifadə edəcəyəm. Əlbəttə, Python qurmaq üçün sizə lazım olacaq 3 artıq quraşdırılmayıbsa, cihazınızda. Siz həmçinin Geekflare Kompilyatorunu quraşdırmaq üçün yükləyə bilərsiniz. Bu çox xoş təcrübə ola bilər!

Contents

İlan oyunu necə işləyir

Oyunçular bu oyunda mümkün olan ən yaxşı nəticəni əldə etmək üçün ekranda göstərilən yeməyi əldə etmək üçün ilanı manipulyasiya etməlidirlər.. Oyunçu ilanın hərəkət etdiyi istiqamətə işarə edən dörd istiqamət düyməsindən birinə basaraq ilanı istiqamətləndirir..

İlan oyunçuya və ya obyektə dəyərsə, oyundan kənarlaşdırılacaq. Bu oyunu oynamaq üçün istifadə edəcəyimiz prosedurlar irəliləyir.

  • Tətbiqlərimizə əvvəlcədən quraşdırılmış modulların idxalı (tısbağa vaxtı, tısbağa, eləcə də təsadüfi).
  • Oyunun ekranı Turtle modulu ilə yaradılmışdır.
  • Ekran ətrafında ilanın hərəkət istiqamətini idarə etmək üçün düymələri təyin edin.
  • Oyunun həyata keçirilməsi.

Tətbiq proqramı əlavə edəcəyimiz snakegame.py faylını yaradın.

Modulların idxalı

Proqramın bu bölməsi Python-da quraşdırılmış vaxtı yükləyir, tısbağa, və təsadüfi modullar. əlavə olaraq, oyunçunun ilkin hesabı üçün standart nömrələr, çata biləcəkləri maksimum xal, və hər bir hərəkət arasında oyunçunun gecikdirdiyi vaxt müəyyən ediləcək. Nə qədər vaxtın gecikdiyini müəyyən etmək üçün, vaxt modulu lazımdır.

import turtle
import random
import time

player_score = 0
highest_score = 0
delay_time = 0.1

Oyunun ekranının hazırlanması

Quraşdırdığımız tısbağa modulu bizə oyunun pəncərə ekranı kimi xidmət edəcək virtual ekran yaratmağa imkan verir. Sonra ilanın cəsədini qura bilərik, eləcə də ilanın yeyəcəyi yeməklər. Ekran həmçinin oyunçunun izləyicisinin hesabını göstərəcək.

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

Yuxarıda qeyd olunan hissədəki kod ilkin başlıq və fon rəngi əlavə etməzdən əvvəl tısbağa ekranını yaradır.. Rəqəmsal kətanımıza ilanın şəklini çəkməzdən əvvəl ilk olaraq ölçüsü seçirik. Tısbağa hərəkət edərkən xətlərin yaranmasının qarşısını almaq üçün, penup üsulu tısbağanın qələmini götürür.

Onun goto texnikasından istifadə etməklə, tısbağa koordinatlardan istifadə edərək dəqiq mövqeyə yönəldilə bilər. İlanın yediyi yemək bizdən hazırlanır.

Hər dəfə ilan yemək toplayır, biz hər bir oyunçunun xalını göstərmək istəyirik. Bir insanın oyun zamanı aldığı ən yüksək balı da göstərmək istəyirik. Bu səbəbdən, qələmlərdən istifadə edirik. Qələm kimi, yaz. Tamamlamaq üçün bir üsulu təsvir edin.

İlan üçün istiqamət düymələrinin qurulması

Bu halda, ilanın ekranda hərəkətini idarə etmək üçün müəyyən düymələri proqramlaşdırırıq. məktubu istifadə edəcəyik “L” sol açar kimi, “R” sol üçün, “U” yuxarıya doğru, və “D” aşağıya doğru. Bu təlimatlar tısbağanın istiqamət funksiyasından istifadə edərək ilanı çağırmaqla həyata keçiriləcək.

Aşağıdakı kod nümunələrini daxil edin.

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

Hərəkət edin() yuxarıda qeyd olunan funksiya ilanın müəyyən bir koordinat daxilində müəyyən edilmiş mövqedə hərəkət etməsinə imkan verir. Dinləmək() istifadəçi düyməni basdıqdan sonra ilanı müəyyən istiqamətə yönəldən üsulları çağıran hadisə dinləyicisi kimi fəaliyyət göstərir..

Oyunun oyununun ilan şəklində həyata keçirilməsi

Fundamental quruluş qurulduqdan sonra oyunu canlı fəaliyyətə çevirmək lazımdır. Bu da daxil olacaq:

  • ilanın uzunluğunu hər dəfə yemək yedikdə fərqli bir rənglə uzadır.
  • ilan yemək yeyəndə, oyunçunun balı artır, və ən yüksək bal daha sonra izlənilir.
  • İlanı divara və ya hətta öz bədəninə çırpmaqdan qorumaq üçün tutula bilər.
  • İlanı vurduqdan sonra, oyun davam edir.
  • Ancaq ekranda, oyun yenidən başladıqda oyunçunun xalı sıfıra bərabər olsa da, oyunçunun ən yüksək xalıdır.
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()

İstifadə etdiyimiz yuxarıdakı kod parçasında, ekranda ilanın yeməyi üçün təsadüfi bir yer təyin etdik. Hər dəfə ilan qidanı yeyir, bədən fərqli bir rəngdə böyüyür, bu vəziyyətdə ağ, artımının fərqli olduğunu aydınlaşdırmaq üçün.

İlan yeməyi yığdıqda və toqquşmur, yemək ekran ölçüsünün 270 dərəcə koordinat sahəsi daxilində təsadüfi bir yerdə göstərilir. Hər dəfə ilan yemək yeyir, oyunçunun hesabı ilə artır 5. İlan oyunçu ilə toqquşmada iştirak edərsə, onların xalları sıfırlanır 0 və ekran ən yüksək xalını saxlayır.

nəticə

Tısbağa kitabxanası bu dərslikdə gördüyümüz ilanlar oyununu düzəltməyin əyləncəli və sadə yoludur.. Eyni oyunu həyata keçirmək üçün Python-da PyGame kitabxanasından da istifadə edə bilərsiniz. Bunları oxuyaraq oyunu fərqli şəkildə necə istifadə edə biləcəyinizi öyrənin PyGame təlimatlar.

Snake Rivals Əyləncəli İlan Oyununu yükləyin

Snake Run Race 3D Qaçış Oyunu

Snake.io - Fun Snake .io Oyunlarını yükləyin