بازی مار در استفاده از ماژول پایتون

اگر از طرفداران بازی مارها هستید، مطمئن هستم که این مقاله برای شما مفید خواهد بود.. من در این پست شما را از طریق مراحل ایجاد یک بازی ساده راهنمایی می کنم که حتی برای تازه واردان پایتون نیز ساخت آن آسان خواهد بود.. کتابخانه PyGame در پایتون, که یک بسته پایتون است که ما برای توسعه بازی ها از آن استفاده می کنیم, یکی از رویکردهای مختلف برای طراحی بازی است.

استفاده از لاک پشت کتابخانه یک استراتژی اضافی است. کاربران می توانند به لطف این ماژول، گرافیک تولید کنند و فرم ها را روی بوم آنلاین بکشند, که قبلا با پایتون نصب شده است. بنابراین, در این آموزش, ما از کتابخانه لاک پشت برای ساختن مار اصلی خود استفاده خواهیم کرد

بازی مار در پایتون

  • ماژول زمان. این تکنیک به ما اجازه می دهد تا تعداد ثانیه هایی را که از زمان قبلی گذشته است، ردیابی کنیم.
  • ماژول تصادفی بازی مار – اعداد تصادفی را در پایتون ایجاد می کند.

سایر ابزارهایی که به آن نیاز دارید شامل ویرایشگر متنی است که ترجیح می دهید. من در این پست از VSCode استفاده خواهم کرد. البته, برای راه اندازی پایتون به آن نیاز دارید 3 اگر قبلاً آن را نصب نکرده‌اید، روی دستگاه خود نصب کنید. همچنین می توانید برای نصب کامپایلر Geekflare دانلود کنید. این می تواند یک تجربه بسیار لذت بخش باشد!

فهرست

بازی مار چگونه کار می کند

بازیکنان باید مار را دستکاری کنند تا غذایی که روی صفحه نمایش داده می شود را به دست آورند تا به بهترین امتیاز ممکن در این بازی دست یابند.. بازیکن با فشار دادن یکی از چهار کلید جهتی که در جهت حرکت مار هستند، مار را هدایت می کند..

اگر مار به بازیکن یا جسمی برخورد کند از بازی حذف می شود. رویه‌هایی که ما برای انجام این بازی در حال پیشرفت استفاده خواهیم کرد.

  • وارد کردن ماژول هایی که از قبل نصب شده اند به برنامه های ما (زمان لاک پشت, لاک پشت و همچنین تصادفی).
  • صفحه نمایش بازی با ماژول Turtle ساخته شده است.
  • کلیدها را برای کنترل جهت حرکت مار در اطراف صفحه تنظیم کنید.
  • اجرای بازی.

فایل snakegame.py را ایجاد کنید که یک برنامه پیاده سازی به آن اضافه می کنیم.

وارد کردن ماژول ها

این بخش از برنامه زمان نصب پایتون را بارگیری می کند, لاک پشت, و ماژول های تصادفی. علاوه بر این, اعداد پیش فرض برای امتیاز اولیه بازیکن, حداکثر امتیازی که می توانند به آن برسند, و مدت زمان تاخیر بازیکن بین هر حرکت مشخص خواهد شد. به منظور تعیین مدت زمان تاخیر, ماژول زمان مورد نیاز است.

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 آن, لاک پشت ممکن است با استفاده از مختصات به یک موقعیت دقیق هدایت شود. غذایی که مار می خورد توسط ما ساخته شده است.

هر بار که مار غذا جمع می کند, ما می خواهیم امتیاز هر بازیکن را نمایش دهیم. ما همچنین می خواهیم بالاترین امتیازی را که یک فرد در طول بازی دریافت می کند نشان دهیم. به این دلیل, ما از قلم استفاده می کنیم. به عنوان قلم, نوشتن. روشی را برای تکمیل شرح دهید.

تنظیم کلیدهای جهت برای مار

در این مورد, ما کلیدهای خاصی را برای کنترل حرکت مار در سراسر صفحه برنامه ریزی می کنیم. ما از نامه استفاده خواهیم کرد “L” به عنوان کلید سمت چپ, “آر” برای سمت چپ, “تو” برای رو به بالا, و “دی” برای رو به پایین. این دستورالعمل ها با فراخوانی مار با استفاده از تابع جهت لاک پشت عملی می شوند.

نمونه کدهای زیر را در خود بگنجانید.

# 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 در پایتون برای پیاده سازی همان بازی استفاده کنید. با خواندن این موارد، دریابید که چگونه می‌توانید از بازی متفاوت استفاده کنید PyGame دستورالعمل ها.

دانلود بازی Snake Rivals Fun Snake

بازی دویدن سه بعدی Snake Run Race

دانلود Snake.io – بازی های سرگرم کننده Snake .io