Python modulidan foydalanishda ilon o'yini

Ishonchim komilki, agar siz ilonlar o'yinining muxlisi bo'lsangiz, ushbu insho sizga foydali bo'ladi.. Ushbu postda men sizga oddiy o'yinni yaratish bosqichlarini aytib beraman, uni hatto Python-ga yangi boshlanuvchilar ham oson yaratishi mumkin.. Python-dagi PyGame kutubxonasi, bu biz o'yinlarni ishlab chiqish uchun ishlatadigan Python to'plami, o'yinni loyihalashning turli yondashuvlaridan biridir.

Kutubxona toshbaqasidan foydalanish qo'shimcha strategiyadir. Foydalanuvchilar ushbu modul tufayli onlayn tuvalda grafikalar yaratishi va shakllar chizishlari mumkin, Python bilan allaqachon o'rnatilgan. Shunday qilib, ushbu qo'llanmada, biz toshbaqa kutubxonasidan asosiy ilonimizni qurish uchun foydalanamiz

Python tilida ilon o'yini

  • vaqt moduli. Ushbu usul bizga oldingi vaqtdan beri o'tgan soniyalarni kuzatish imkonini beradi.
  • ilon o'yini Tasodifiy modul – Pythonda tasodifiy sonlarni yaratadi.

Sizga kerak bo'lgan boshqa vositalar orasida siz tanlagan matn uchun muharrir mavjud. Men ushbu postda VSCode-dan foydalanaman. Albatta, Python-ni sozlash uchun sizga kerak bo'ladi 3 qurilmangizda allaqachon o'rnatilmagan bo'lsa. Geekflare kompilyatorini o'rnatish uchun ham yuklab olishingiz mumkin. Bu juda yoqimli tajriba bo'lishi mumkin!

Mundarija

Ilon o'yini qanday ishlaydi

O'yinchilar ushbu o'yinda mumkin bo'lgan eng yaxshi natijaga erishish uchun ekranda ko'rsatilgan ovqatni olish uchun ilonni boshqarishlari kerak.. O'yinchi ilon harakatlanayotgan yo'nalishni ko'rsatadigan to'rtta yo'nalish tugmalaridan birini bosib ilonni boshqaradi..

Agar ilon o'yinchi yoki biror narsaga urilsa, o'yindan chetlatiladi. Ushbu o'yinni o'ynash uchun biz foydalanadigan protseduralar oldinga siljiydi.

  • Ilovalarimizga oldindan o'rnatilgan modullarni import qilish (toshbaqa vaqti, toshbaqa, shuningdek, tasodifiy).
  • O'yin ekrani Turtle moduli yordamida yaratilgan.
  • Ekran bo'ylab ilonning harakat yo'nalishini boshqarish uchun tugmalarni o'rnating.
  • O'yinni amalga oshirish.

Biz amalga oshirish dasturini qo'shadigan snakegame.py faylini yarating.

Modullarni import qilish

Dasturning ushbu bo'limi Python o'rnatilgan vaqtni yuklaydi, toshbaqa, va tasodifiy modullar. Bundan tashqari, o'yinchining dastlabki balli uchun standart raqamlar, ular erisha oladigan maksimal ball, va o'yinchining har bir harakat o'rtasida kechikish vaqti aniqlanadi. Qancha vaqt kechiktirilganligini aniqlash uchun, vaqt moduli kerak.

import turtle
import random
import time

player_score = 0
highest_score = 0
delay_time = 0.1

O'yin ekranini yaratish

Biz o'rnatadigan toshbaqa moduli o'yin oynasi ekrani bo'lib xizmat qiladigan virtual ekranni yaratishga imkon beradi. Keyin biz ilonning tanasini qurishimiz mumkin, shuningdek, ilon yeyadigan oziq-ovqat mahsulotlari. Ekranda o'yinchi kuzatuvchisining balli ham ko'rsatiladi.

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

Yuqorida aytib o'tilgan parchadagi kod boshlang'ich sarlavha va fon rangini qo'shishdan oldin toshbaqa ekranini o'rnatadi.. Raqamli tuvalimizga ilonning shaklini chizishdan oldin avval o'lchamni tanlaymiz. Toshbaqa harakatlanayotganda chiziqlar hosil bo'lishining oldini olish uchun, penup usuli toshbaqa qalamini oladi.

Uning goto texnikasidan foydalanish bilan, toshbaqani koordinatalar yordamida aniq joyga yo'naltirish mumkin. Ilon yeydigan ovqatni biz tayyorlaymiz.

Har safar ilon ovqat yig'adi, biz har bir futbolchining hisobini ko'rsatmoqchimiz. Shuningdek, biz o'yin davomida odam oladigan eng yuqori ballni ko'rsatmoqchimiz. Shu sababli, qalamlardan foydalanamiz. Qalam sifatida, yozish. To'ldirish usulini tavsiflang.

Ilon uchun yo'nalish tugmachalarini o'rnatish

Bu holatda, biz ekran bo'ylab ilonning harakatini boshqarish uchun ma'lum tugmachalarni dasturlashtiramiz. Biz xatdan foydalanamiz “L” chap kalit sifatida, “R” chap uchun, “U” yuqoriga qarab, va “D” pastga qarab. Ushbu ko'rsatmalar toshbaqaning yo'nalishi funktsiyasidan foydalangan holda ilonni chaqirish orqali amalda qo'llaniladi.

Quyidagi kod misollarini o'z ichiga kiriting.

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

Ko'chirish() Yuqorida aytib o'tilgan funksiya ilonning belgilangan koordinatada belgilangan holatda harakatlanishiga imkon beradi. Eshiting() foydalanuvchi tugmani bosgandan so'ng ilonni ma'lum bir yo'nalishga yo'naltiradigan usullarni chaqiradigan voqea tinglovchisi sifatida ishlaydi..

O'yin o'yinining ilon shaklida amalga oshirilishi

Asosiy tuzilma o'rnatilgandan so'ng o'yin jonli harakatga aylantirilishi kerak. Bu nimani o'z ichiga oladi:

  • har safar oziq-ovqat iste'mol qilganda ilonning uzunligini boshqa rang bilan uzaytiradi.
  • har doim ilon ovqat iste'mol qilganda, o'yinchining balli ko'payadi, va keyin eng yuqori ball kuzatiladi.
  • Ilonni devorga yoki hatto o'z tanasiga urishdan himoya qilish uchun ushlab turish mumkin.
  • Ilonni urgandan keyin, o'yin davom etadi.
  • Biroq, ekranda, o'yin qayta boshlanganda o'yinchining balli nolga qaytarilgan bo'lsa ham, o'yinchining eng yuqori ballidir.
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()

Yuqoridagi kod parchasida biz foydalangan, biz ekranda ilonning ovqati uchun tasodifiy joy ajratdik. Har safar ilon ozuqani yeydi, tanasi boshqa rangda o'sadi, bu holatda oq, uning o'sishi alohida ekanligini aniq ko'rsatish uchun.

Ilon ovqatni yig'ib, to'qnashmaganida, oziq-ovqat ekran o'lchamining 270 graduslik koordinata maydoni ichida tasodifiy joyda ko'rsatiladi.. Har safar ilon ovqat olib ketadi, o'yinchining balli ortadi 5. Agar ilon o'yinchi bilan to'qnashuvda ishtirok etsa, ularning reytingi tiklanadi 0 va ekran eng yuqori ballni saqlaydi.

xulosa

Toshbaqa kutubxonasi - biz ushbu qo'llanmada ko'rgan ilonlar o'yinini qilishning qiziqarli va oddiy usuli. Xuddi shu o'yinni amalga oshirish uchun Python-dagi PyGame kutubxonasidan ham foydalanishingiz mumkin. Bularni o'qib, o'yindan qanday qilib boshqacha foydalanishingiz mumkinligini bilib oling PyGame ko'rsatmalar.

Ilon raqiblari qiziqarli ilon o'yinini yuklab oling

Snake Run Race 3D yugurish o'yini

Snake.io - Qiziqarli Snake .io o'yinlarini yuklab oling