آموزش ساخت بازی مار با پایتون

آموزش ها
سه شنبه 25 اردیبهشت 1403
جهت مطالعه این مقاله به 10 دقیقه زمان نیاز دارید
آنچه در این مقاله خواهیم خواند:

در این مقاله، ما قصد داریم یک نگاه کلی به ساخت یک بازی ساده‌ی مار با استفاده از زبان برنامه‌نویسی پایتون و کتابخانه‌ی Tkinter را بررسی‌ کنیم. بازی مار یک بازی کلاسیک و محبوب است که الگوی حرکت ساده‌ای دارد و برای مبتدیان نیز بسیار مناسب است.

 

ساخت بازی مار با زبان برنامه نویسی پایتون

ما با استفاده از Tkinter یک پنجره بازی ایجاد می‌کنیم که در آن مار و غذاها را نمایش می‌دهیم. سپس با استفاده از توابع و کلاس‌ها، حرکت مار و بررسی برخورد‌ مار با  غذاها و دیوار‌ها را پیاده‌سازی می‌کنیم. همه این فرآیندها در دوره آموزش پایتون کودکان به صورت جامع تر و با تمرین و تکرار بیشتر بررسی می شود. این مقاله برای یادگیری اولیه افراد با کدها است.

 

معرفی کتابخانه Tkinter برای ساخت بازی مار با پایتون

Tkinter یک کتابخانه‌ی محبوب و استاندارد برای توسعه‌ی رابط‌های کاربری گرافیکی (GUI) در پایتون است. این کتابخانه امکانات زیادی برای ایجاد پنجره‌ها، دکمه‌ها، برچسب‌ها، و سایر المان‌های GUI را فراهم می‌کند که برای ساخت بازی با پایتون می توانیم از آن استفاده کنیم.

 

پیاده‌سازی کد ساخت بازی مار با پایتون

در این قسمت، به شرح کدی که برای آموزش ساخت بازی ماری با زبان پایتون استفاده می‌کنیم می‌پردازیم. کلاس‌های Snake و Food برای نمایش مار و غذاها ایجاد می‌شوند. همچنین توابعی برای حرکت مار، بررسی تصادفات، و پایان بازی نیز پیاده‌سازی می‌شوند.

 

ساخت کتابخانه‌ها و ثابت‌ها برای بازی مار در پایتون

کتابخانه‌های مورد استفاده tkinter و random را وارد می‌کنیم و یک ثابت به نام SPACE_SIZE را برای اندازه هر مربع در بازی تعریف می‌کنیم.

ساخت کتابخانه‌ها و ثابت‌ها برای بازی مار در پایتون

 

تعریف کلاس Snake در ساخت بازی مار

اندازه اولیه (body_size) و مختصات (coordinates) مار را به عنوان لیستی از لیست ها مقداردهی می کند. مربع های سبز اولیه که نشان دهنده بدن مار هستند را با استفاده از روش create_rectangle در بوم نقاشی ایجاد می کند. برای دسترسی آسان، اشاره گرهایی به این مربع ها را در لیست squares  ذخیره می کند.

تعریف کلاس Snake در ساخت بازی مار

 

تعریف کلاس Food برای ساخت بازی مار

مختصات تصادفی برای غذای مار در محدوده قابل بازی بوم نقاشی ایجاد می‌کند. با استفاده از متد create_oval  یک بیضی سفید به عنوان غذا ایجاد می‌کند.   

تعریف کلاس Food برای ساخت بازی مار

 

تعریف تابع next_turn برای ساخت بازی مار با پایتون

حرکت مار را بر اساس جهت فعلی (direction) کنترل می‌کند. با درج موقعیت جدید سر در ابتدای لیست coordinates، مختصات مار را به روز می‌کند. با استفاده از create_rectangle  یک مربع سبز جدید برای سر ایجاد می کند و آن را به لیست squares  اضافه می‌کند.

تعریف تابع next_turn برای ساخت بازی مار با پایتون

 

برخورد مار با غذا را بررسی می کند:

در صورت برخورد، امتیاز افزایش می‌یابد، غذای فعلی حذف و دوباره ایجاد می‌شود و طول مار کوتاه نمی‌شود. در غیر این صورت، آخرین عنصر (دم) از لیست‌های coordinates و squares حذف می‌شود و به طور موثر طول مار کوتاه می‌شود. از تابع check برای بررسی اتمام بازی به دلیل برخورد با دیوار یا خود مار استفاده می کند.

اگر بازی به پایان نرسیده باشد، با استفاده از root.after، فراخوانی تابع next_turn را پس از 200 میلی ثانیه (0.2 ثانیه) برنامه ریزی می کند. این کار باعث ایجاد انیمیشن حرکت مار می‌شود.

 

بیشتر بخوانید: ساخت بازی با اسکرچ

 

تعریف تابع change_direction برای ساخت بازی مار

متغیر سراسری direction را برای اعمال تغییر جهت انتخاب شده توسط کاربر به روز می کند. از حرکت مار به سمت مخالف (مثلاً بالا پس از پایین) جلوگیری می‌کند.

تعریف تابع change_direction برای ساخت بازی مار

 

تعریف تابع check برای ساخت بازی مار در پایتون

برخورد سر مار با دیوارها (مرزهای بوم نقاشی) را بررسی می کند. برای بررسی برخورد سر مار با سایر قسمت های بدنش، مختصات بدن مار (به جز سر) را پیمایش می کند. در صورت تشخیص برخورد، True و در غیر این صورت False را برمی گرداند.

تعریف تابع check برای ساخت بازی مار در پایتون

 

تعریف تابع game_over در بازی مار

تمام عناصر را از بوم نقاشی پاک می‌کند. پیام "Game Over" را با رنگ قرمز نمایش می‌دهد.

تعریف تابع game_over در بازی مار

 

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

یک نمونه از Tk (root) برای مدیریت پنجره GUI ایجاد می‌شود.
عنوان پنجره به "بازی مار" تنظیم می‌شود.
یک متغیر score برای ذخیره امتیاز بازی مقداردهی اولیه می‌شود.
جهت اولیه (direction) به "پایین" تنظیم می‌شود.
یک برچسب (label) برای نمایش امتیاز فعلی ایجاد می‌شود.
یک بوم نقاشی سیاه (canvas) با عرض و ارتفاع 500 پیکسل ایجاد می‌شود.
چیدمان پنجره به 500x500 پیکسل تنظیم می‌شود و در 400 پیکسل از سمت چپ و 100 پیکسل از بالای صفحه قرار می‌گیرد.
برای کنترل جهت مار، کلیدهای جهت‌دار به توابع مربوطه متصل می‌شوند.
نمونه‌هایی از کلاس های Snake و Food ایجاد می‌شوند.

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

 

حلقه بازی:

برای شروع حلقه بازی، تابع next_turn  فراخوانی می شود.

ساخت حلقه بازی مار در پایتون

 

کد نهایی ساخت بازی مار در پایتون

 

کد نهایی ساخت بازی مار در پایتون

 

بهبودها و توسعه‌های آتی برای ساخت بازی مار در پایتون

برای ارتقاء این بازی، می‌توانیم ویژگی های مختلفی اعمال کنیم. به عنوان مثال، اضافه کردن صداها، ایجاد سطوح مختلف با پیچیدگی‌های متفاوت، و افزودن امکانات چندنفره.

 

بیشتر بخوانید: ساخت بازی مار با اسکرچ

 

نتیجه‌گیری

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

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