کد بازی ماشین در پایتون – به زبان ساده + طراحی و اجرا
حتی اگر برنامه نویس تازهکار هستید هم میتوانید از این مطلب استفاده کنید. زیرا تمام کد بازی ماشین در پایتون به صورت مرحلهبهمرحله توضیح داده شدهاند. زبان برنامه نویسی پایتون یکی از محبوبترین زبانهای دنیاست و برای انجام پروژههای مختلف به کار برده میشود. پایتون به دلیل سادگی در سینتکس و چندکاره بودن از توسعه اپلیکیشنهای تحت وب گرفته تا تحلیل داده را پوشش میدهد. یکی از جذابترین حوزههای کاربردی پایتون، ساخت بازیهای رایانهای است. در این مطلب از مجله فرادرس، روش ساخت بازی ماشین را آموزش دادهایم.
- با پیشنیازهای مهم در زمان ساخت بازی با پایتون آشنا میشوید.
- چند مورد از ماژولهای کاربردی برای اجرای پروژههای بازی را میشناسید.
- روش استفاده از شیءگرایی برای ساخت بازی و نوشتن متدهای مرتبط را یاد میگیرید.
- با بازی ماشین ساده آشنا شده و روش پیادهسازی عناصر مهم آن را میآموزید.
- روش ساخت پنجره بازی و قرار دادن المانهای آن را در کتابخانه pygame یاد میگیرید.
- میآموزید که چگونه با کمک متد render در pygame متنها را برای نمایش در صفحه آماده کنید.


تا انتهای این مطلب، روش پیادهسازی عملی بازی ماشین دوبعدی را به طور کامل یاد میگیرید. ابتدا با معرفی پیشنیازهای ساخت پروژه شروع کرده و سپس تمام کدهای آن را به صورت مرحلهبهمرحله توضیح میدهیم. میتوانید این بازی را با دوستان خود به صورت اشتراکی بازی کرده یا به عنوان نمونه کار در گیتهاب بارگذاری کنید.
پیشنیازهای توسعه کد بازی ماشین در پایتون
قبل از شروع به ساخت بازی دوبعدی ماشین در پایتون، لازم است چند فایل و ابزار را آماده کنیم. این موارد، پیشنیازهای اصلی برای ساخت بازی ماشین هستند.
در فهرست زیر، پیشنیازهای لازم برای توسعه کد بازی ماشین در پایتون را آوردهایم.
- نصب پایتون نسخه ۳: زبان برنامه نویسی پایتون اوپن سورس و رایگان است. بنابراین به راحتی میتوانید با مراجعه به وبسایت رسمی در لینک (+) نسخههای مختلف آن را دانلود کرده و استفاده کنید. برای ساخت این بازی از پایتون نسخه ۳.۱۳ استفاده کردهایم. این نسخه، جدیدترین نسخه متناسب با «Pygame» است.
- نصب IDE یا ویرایشگر متن مناسب: برای نوشتن و اجرای کدهای این بازی میتوان از هر «ویرایشگر متن» (Text Editor) یا «محیط توسعه یکپارچهای» (Integrated Development Environment | IDE) استفاده کرد. به عنوان نمونه «PyCharm» و «Visual Studio Code» و «Sublime Text» و «++Notepad» به عنوان چند مورد از مناسبترین محیطهای برنامه نویسی پایتون هستند. در این مطلب از نرمافزار ویژوال استودیو کد استفاده میکنیم.
- عکس عناصر بازی: برای ساخت این بازی به عکسهای ماشین، جادهها، ماشین دشمن و پسزمینه محیط نیاز داریم. باید این تصاویر در زمان ساخت بازی در مکان مشخص شده قرار بگیرند. میتوانید تمام عکسها را از اینجا (+) دانلود کرده و داخل همان پوشهای که فایل پایتونی بازی قرار دارد، قرار بدهید.

نکته: فایل زیپ عکسها را باز کرده و آنها را به شکل مستقیم در کنار اسکریپت بازی قرار بدهید.

ماژولهای مورد نیاز
بعد از تهیه کردن پیشنیازهای اصلی، به سراغ مرحله بعد میرویم. این مرحله، شامل دانلود و نصب تمام ماژولها و کتابخانههای مورد نیاز پروژه است. برای توسعه و اجرای توسعه کد بازی ماشین در پایتون باید ماژولهای زیر را در پایتون نصب کرده و در محیط برنامه نویسی ایمپورت کنیم.
- Pygame: این کتابخانه با هدف کمک به ساخت بازیهای دوبعدی و سهبعدی در پایتون ارائه شده است. Pygame پر از ماژولهای متنوعی است که برای ساخت بازیهای ویدئویی طراحی شدهاند. این کتابخانه شامل تصاویر گرافیکی مختلف و ماژولهای صوتی است که برای استفاده در بازیهای پایتون به کار برده میشوند. Pygame را میتوانید با کمک pip در پایتون نصب کنید. فقط کافی است که دستور زیر را در خط فرمان یا ترمینال نوشته و اجرا بکنید.
py -3.13 -m pip install pygame --userنکته: دستور بالا مربوط به نصب Pygame بر روی پایتون نسخه ۳.۱۳ است. از این دستور زمانی استفاده کنید که چند نسخه مختلف پایتون بر روی کامپیوتر، نصب شدهاند.

- Random: ماژول Random، جزو ماژولهای درونی پایتون است. این ماژول برای ساخت اعداد تصادفی به کار برده میشود. در زمان ساخت بازی ماشین از این ماژول برای ساخت موانع تصادفی و حرکت آنها استفاده خواهیم کرد.
- Sys: ماژول «Sys» هم جزو ماژولهای درونی یا «Built-In» در پایتون است. در این ماژول، توابعی برای دسترسی به متغیرهای مورد استفاده توسط مفسر پایتون تعبیه شدهاند. با کمک این متغیرها میتوان به مفسر پایتون دسترسی داشت. از این ماژول برای خروج از بازی استفاده میکنیم. هر وقت که بازیکن گزینه «Quit» را انتخاب کند، باید فضای بازی بسته شوند.
تا به اینجای مطلب با پیشنیازهای ساخت بازی ماشین در پایتون آشنا شدهاید. در ادامه تمام کدهای این بازی را به صورت کامل توضیح دادهایم. در صورت علاقه به مطالعه این دست مطالب، پیشنهاد میکنیم که حتما از اپلیکیشن مجله فرادرس استفاده بکنید.
برای نصب اپلیکیشن رایگان مجله فرادرس، کلیک کنید.
قبل از شروع به نوشتن کد بازی ماشین در پایتون، باید مطمئن شویم تمام ماژولهای مورد استفاده به خوبی بر روی سیستم نصب شده و در محیط کدنویسی ایمپورت شدهاند. در صورت نیاز با کمک دستورات زیر هم میتوان ماژولهای مورد نیاز را نصب کرد. باید این دستورات را در ترمینال لینوکس یا خط فرمان ویندوز نوشته و اجرا بکنیم.
pip install pygame
pip install randomبعد از اینکه نصب ماژولها با موفقیت به پایان رسید، شروع به توسعه بازی ماشین میکنیم.
یادگیری ساخت بازی با پایتون در فرادرس
برای یادگیری ساخت بازی با پایتون باید چند مرحله مختلف را طی کنیم. این مراحل از آشنایی با مفاهیم اولیه و پیشرفته برنامهنویسی شروع میشوند و تا یادگیری کتابخانههای تخصصی ادامه پیدا میکنند. انجام این مسیر با استفاده از منابع آموزشی درست اهمیت زیادی دارد. زیرا انتخاب منبع مناسب هم کیفیت یادگیری را افزایش میدهد و هم سرعت آن را بیشتر میکند. وبسایت آموزشی فرادرس در این حوزه مطالب متنی و فیلمهای آموزشی متنوع و زیادی تولید کرده است. با مراجعه به محتوای تولید شده در این وبسایت میتوانید مهارتهای خود را به میزان چشمگیری ارتقا بدهید.

در بیشتر اوقات، آخرین مرحله آموزش هر مهارتی، مربوط به انجام تمرینهای پروژهمحور و شبیهسازی سناریوهای واقعی است. در برنامه نویسی نیز روش آموزش به همین شکل دنبال میشود. این مسیر از آشنایی با سینتکس زبان شروع شده و تا توسعه پروژههای کاربردی ادامه پیدا میکند. مشاهده فیلمهای پروژهمحور فرادرس یکی از بهترین گزینهها برای حرفهای شدن در بازیسازی با پایتون است. در این بخش، چند نمونه از فیلمهای آموزش ساخت بازی با پایتون را معرفی کردهایم.
- فیلم آموزش پیاده سازی بازی مار در پایتون با یادگیری تقویتی عمیق
- فیلم آموزش پایتون با طراحی بازی سنگ کاغذ قیچی + گواهینامه
- فیلم آموزش پروژه محور پایتون درباره ساخت بازی Snake
- فیلم آموزش پروژه محور پایتون درباره ساخت بازی حافظه تصویری با کتابخانه Tkinter و Turtle + گواهینامه
- فیلم آموزش پروژه محور پایتون درباره ساخت بازی با کتابخانه Turtle + گواهینامه
در ادامه، مراحل پیادهسازی کد بازی ماشین در پایتون را بررسی میکنیم.
پیادهسازی کد بازی ماشین در پایتون
در این قسمت از مطلب، کد بازی ماشین در پایتون را پیادهسازی کرده و مرحلهبهمرحله توضیح میدهیم. در این کد از ماژول pygame استفاده کردهایم. این ماژول برای ساخت بازی طراحی شده است. برای شروع به تمرین بازیسازی میتوان از کتابخانه Turtleهم استفاده کرد. در صورت تمایل به یادگیری این کتابخانه پیشنهاد میکنیم که فیلم آموزش پروژه محور پایتون درباره ساخت بازی با کتابخانه Turtle + گواهینامه را در فرادرس مشاهده بکنید. لینک مربوط به این فیلم را در پایین نیز قرار دادهایم.
در ابتدا باید ماژولهای مورد نیاز را در محیط کدنویسی خود ایمپورت بکنیم.
ابتدا کلاسی به نام CarRacing تعریف میکنیم. متدهای مختلفی باید در این کلاس ساخته شوند. هر کدام از این متدها وظیفه انجام کار خاصی را بر عهده دارند. در ادامه یک به یک متدهای کلاس CarRacing را معرفی کرده و عملکرد هر کدام را توضیح میدهیم.
متد __init__
در کادر پایین، متد __init__() این کلاس را نوشتهایم. متد __init__ در پایتون کاربردهای مهمی دارد.
در فهرست زیر، متغیرها و توابع فراخوانی شده در متد __init__() را توضیح دادهایم.
- کد pygame.init() متد __init__() از ماژول pygame را مقداردهی اولیه کرده است.
- بعضی از مقادیر مربوط به نمایش صفحه در این متد تنظیم میشوند. برای مثال میتوان به عرض و ارتفاع صفحه نمایش (در خطوط ۳ و۴) اشاره کرد.
- بعضی از رنگها را هم در خطوط ۵ و ۶ این متد مشخص کردهایم. یعنی کد RGB رنگهای سیاه و سفید تعریف شدهاند.
- در خط بعد با کد pygame.time.Clock() برای بازی، ساعت ایجاد کردیم. این ساعت وظیفه کنترل سرعت بازی را بر عهده دارد. در واقع وظیفه اصلی آن مدیریت تعداد فریمهای بازی در هر ثانیه است.
- متغیر gameDisplay هم ساخته شده که در اول بازی مقدار آن برابر با None است.
- در خط آخر از متد __init__()، متد self.initialize() فراخوانی شده است. این متد را در بخش بعد توضیح میدهیم.

متد self.initialize
بعد از متد __init__() نوبت به تعریف متد self.initialize() میرسد. در کادر زیر این متد را پیادهسازی کردهایم.
وظیفه متد initialize() تنظیم چند مقدار اولیه در زمان شروع بازی است. این موارد را در فهرست پایین توضیح دادهایم.
- خط ۳: متغیر crashed دارای مقدار بولین است. در ابتدای بازی مقدار آن را برابر با False قرار میدهیم. یعنی آن که بازی هنوز تمام نشده است.
- خط ۴: متغیر carImg وظیفه نگهداری عکس ماشین را برعهده دارد. وقتی مفسر پایتون به این خط برسد، عکس ماشین از آدرس داده شده در بازی بارگذاری میشود.
- خطوط ۵ و ۶ و ۷: سپس موقعیت ماشین در زمان شروع بازی همراه با عرض و ارتفاع آن تنظیم میشود. منظور از عرض ماشین پهنای عکس نیست. بلکه حریم عرضی ماشین در زمان رد شدن از کنار موانع است. هر چه مقدار self.car_width بیشتر باشد ماشین باید از فاصله دورتری نسبت به موانع رد بشود و برعکس.
- خط ۱۰: متغیر بعدی enemy_car است. این متغیر عکس ماشینهایی است که در جهت برعکس حرکت میکنند. با مقداردهی به آن تصویر ماشین دشمن (مانع بازی) بارگذاری میشود.
- خطوط ۱۱ و ۱۲ و ۱۳: مختصات x برای شروع به حرکت ماشینهای دشمن به صورت تصادفی تعیین میشود. اما مختصات y و سرعت حرکت ماشینهای دشمن ثابت هستند.
- خطوط ۱۴ و ۱۵: در خط بعد عرض ماشین دشمن مشخص شده است. بعد از آن هم ارتفاع ماشین دشمن مشخص میشود. هر ماشین دشمن در واقع یک فضای مستطیلی را اشغال میکند که با ورود به آن فضا تصادف کرده و بازی به پایان میرسد.
- خط ۱۸: تصویر پسزمینه محیط بازی را در متغیر self.bgImg بارگذاری میکنیم.
- از خط ۱۹ تا ۲۳: سپس موقعیت شروع زمین بازی و سرعت حرکت آن را مشخص میکنیم.
- خط ۲۴: در این خط متغیر count را تعریف میکنیم. مقدار این متغیر در ابتدای بازی برابر با 0 قرار داده شده است.
نکته: شماره خطوط نوشته شده در فهرستهای مطلب مانند این فهرست، مربوط به کادر متناظر آنها (در اینجا کادر بالا) هستند. در نسخه کامل کد، این شمارهها فرق کرده و به ترتیب از ابتدا تا انتها شمارهگذاری شدهاند.
متد __init__() وظیفه تنظیم مقادیر اولیه برای صفحه نمایش و کتابخانه pygame را برعهده داشت. در حالی که متد initialize() وظیفه مقداردهی اولیه به عناصر بازی مانند ماشین اصلی، ماشینهای دشمن و تصویر پس زمینه را برعهده دارد.
متدهای car و racing_window
در کادر پایین، دو متد دیگر car() و racing_window() را تعریف کردهایم.
در فهرست زیر عملکرد این متدها را توضیح میدهیم.
- متد car() : وظیفه متد car() این است که ماشین را بر روی پنجره بازی حرکت بدهد. ابتدا مختصات x و y ماشین را دریافت میکند. سپس تصویر ماشین را بر روی مختصات دریافت شده از صفحه بازی قرار میدهد.
- متد racing_window(): وظیفه راهاندازی پنجره بازی را برعهده دارد. این متد تیتر پنجره و اندازه آن را تنظیم میکند. در نهایت بعد از تنظیم کردن مشخصات صفحه بازی، متد run_car() را فراخوانی کرده و بازی را شروع میکند.

متد run_car
در کادر پایین متد run_car() را پیادهسازی کردیم. توجه کنید که تمام این متدها در داخل کلاس CarRacing نوشته میشوند. در انتهای مطلب، تمام کدها را به صورت یکجا قرار دادهایم.
در این بلوک کد، حلقه اصلی بازی وجود دارد. این حلقه تا زمانی اجرا میشود که ماشین بازیکن با ماشینهای دشمن برخورد کند یا از جاده خارج شود. در داخل حلقه while برنامه به طور دائم تمام رویدادهای صادر شده از طرف بازیکن را بررسی کرده و ماشین را مطابق با رویداد مناسب حرکت میدهد.
- خطوط ۱۰ تا ۱۷: در این بازی، بازیکن میتواند ماشین خود را به راست و چپ حرکت بدهد. برای انجام این حرکتها باید از کلیدهای فلش راست و چپ بر روی کیبورد استفاده کند.
- خط ۲۰: سپس با کمک متد back_ground_road، جاده پسزمینه رسم میشود.
- خط ۲۲: بعد از رسم شدن این جاده باید ماشینهای دشمن از بالا به پایین جاده حرکت بکنند. برای پیادهسازی این حرکت از متد run_enemy_car() استفاده میکنیم.
- خطوط ۲۵ و ۲۶ و ۲۷: این برنامه در هر لحظه موقعیت ماشین دشمن را بررسی میکند. به محض اینکه ماشین دشمن از صفحه بازی خارج شد، دوباره از اول حرکت آن ریاستارت میشود. یعنی ماشین دشمن دوباره در بالای صفحه بازی ظاهر شده و از آنجا حرکت میکند. موقعیت ظاهر شدن ماشین دشمن در هر بار به صورت تصادفی مشخص میشود.
- خط۲۹: متد car() برای رسم ماشین بازیکن در پایین صفحه به کار برده میشود.
- خط ۳۰: برای بهروزرسانی دائمی رکورد بازیکن هم از متد highscore() استفاده میکنیم.
- از خط ۳۵ تا ۳۸: بعد از شروع بازی، برنامه دائما وضعیت تصادف بین خودرو بازیکن و دشمن را بررسی میکند. هر وقت که تصادفی روی بدهد، بازی تمام شده و بازیکن شکست میخورد. در این لحظه با استفاده از متد display_message() پیغام Game Over را بر روی صفحه بازی نمایش میدهیم.
- از خط ۴۰ تا ۴۲: به همین ترتیب، هر وقت که بازیکن از جاده خارج شود هم بازی به پایان میرسد. بنابراین باید پیغام Game Over به بازیکن نشان داده شود.
- خط ۴۴: در نهایت هم صفحه نمایش را با استفاده از متد pygame.display.update() دائما بهروزرسانی میکنیم. این متد وظیفه نمایش تمام تغییرات به وجود آمده در بازی بر روی صفحه نمایش را برعهده دارد.
- خط ۴۵: نرخ فریم بازی با کمک کد self.clock.tick(60) تنظیم میشود. این کد سرعت اجرای فریمها را محدود میکند. بیشینه سرعت اجرای بازی برابر با ۶۰ فریم در ثانیه است.

متدهای display_message و back_ground_raod
در کادر پایین متدهای display_message() و back_ground_raod() را پیادهسازی کردهایم. مشاهده میکنید که تمام رفتارهای مهم به صورت متدها یا توابع داخل کلاس تعریف شدهاند. برای درک و تسلط بیشتر بر این موضوع بهتر است دستور def در پایتون را شناخته و روش تعریف تابع با آن را بلد باشید. در صورت نیاز، پیشنهاد میکنیم که مطلب مربوط به آن را در مجله فرادرس مطالعه کنید.
متد display_message() مسئول نمایش پیامهاست. هر وقت که بازی به اتمام برسد این متد کار خود را انجام میدهد.
- خط ۱ و ۲: این متد پارامتر msg را از جنس رشته دریافت کرده و از تابع pygame.font.SysFont() برای ساخت فونت استفاده میکند. هر فونت نوع مشخص، اندازه و حالت Bold مخصوص به خود را دارد.
- خط ۳: این تابع از متد render() برای ساخت شیء فونت استفاده میکند. متد render() با کمک پیغام و رنگ مشخص شده، نمای مناسبی برای متن میسازد.
- خط ۴: متد blit() متن مشخص شده را در مرکز صفحه نمایش بازی رسم میکند.
- خطوط ۵ تا ۸: متد display_credit() برای نمایش مشخصات بازی فراخوانی میشود. بعد از فراخوانی این متد مدت زمان مشخصی (در اینجا ۱ ثانیه) صبر کرده و صفحه نمایش بهروزرسانی میشود.
- خطوط ۹ و ۱۰: در نهایت دوباره متدهای initialize() و racing_window() فراخوانی شده و بازی از اول شروع میشود.
متد back_ground_raod() مسئول نمایش جاده در پسزمینه بازی است.
- خطهای ۱۳ و ۱۴: back_ground_raod() از متد blit() برای نمایش تصویر جاده کمک میگیرد. عکس صفحه بازی دو بار در بالای همدیگر ایجاد میشوند. با این کار ظاهر جاده به صورت پیوسته و در حال اسکرول شدن از بالا به پایین نمایش داده میشود.
- خطوط ۱۷ و ۱۸: این کدها مسئول بهروزرسانی دائمی موقعیت y در عکسهای جاده هستند. برای این کار، با استفاده از متغیر bg_speed به طور دائم مقدار مختصات y افزایش پیدا میکند.
- خطوط ۲۱ تا ۲۶: هر وقت که عکسی به انتهای پایین صفحه بازی برسد، دوباره ریاستارت شده و از ابتدای بالا صفحه نمایش حرکت خود را شروع میکند.
متد run_enemy_car
در کادر زیر متد run_enemy_car() برای شبیهسازی حرکت ماشینهای دشمن پیادهسازی شده است.
همینطور که در کد بالا مشاهده میکنید، متد run_enemy_car() دو آرگومان thingx و thingy را دریافت میکند. این آرگومانها به ترتیب، وظیفه مشخص کردن مختصات x و y ماشین دشمن را برعهده دارند. این متد با کمک تابع blit() از کتابخانه pygame عکس ماشینهای دشمن را در صفحه نمایش، نشان میدهد. برای نمایش عکس ماشین بر روی صفحه نمایش باید از self.gameDisplay استفاده کنیم. عکس ماشین دشمن به شکل دقیق در مختصات thingx و thingy رسم خواهد شد.
متد highscore
در کادر زیر، متد highscore() را برای محاسبه و نمایش رکورد بازیکن پیادهسازی کردهایم.
در فهرست زیر، کدهای این متد را یک به یک توضیح دادهایم.
- خط ۱: متد highscore()، آرگومان count را دریافت میکند. این آرگومان برای نمایش رکورد فعلی بازیکن به کار برده میشود.
- خط ۲: در این متد با کمک تابع SysFont() از کتابخانه pygame فونت جدیدی ایجاد میکنیم.
- خط ۳: این متد، متن Score : را همراه با شماره رکورد بر روی صفحه نمایش نشان میدهد. قبل از ارسال شماره رکورد به متد render() باید آن را به رشته تبدیل بکنیم. در نهایت هم از متد render() برای تبدیل کردن متن به عکس استفاده میکنیم.
- خط ۴: عکس ساخته شده به عنوان نمای جدیدی برای استفاده در صفحه نمایش به کار برده خواهد شد. برای نمایش این عکس از تابع blit() کمک گرفتهایم. متن ساخته شده در گوشه بالا سمت چپ صفحه نمایش، ظاهر میشود.

متد display_credit
در کادر پایین، متد display_credit() را پیادهسازی کردهایم.
وظیفه متد display_credit() نشان دادن پیام متنی کوچکی در گوشه پایین سمت راست صفحه نمایش بازی است. برای این کار، مختصات (600, 520) را به متد gameDisplay.blit() ارسال کردهایم. در این متن از بازیکن برای بازی کردن تشکر میکنیم. عملکرد این متد هم شبیه به متد highscore() است.
- یعنی ابتدا با کمک کتابخانه pygame فونت جدیدی ایجاد میکند.
- سپس با کمک تابع render()، متن ساخته شده را به عکس تبدیل میکند.
- سپس با کمک تابع blit() عکس را در مختصات مشخص شده قرار میدهد.
این متن دقیقا در مختصات تعیین شده و بعد از به پایان رسیدن بازی نشان داده میشود.
کدهای مربوط به اجرای کلاس در اسکریپت
در کادر پایین، کدهای انتهای فایل برای اجرای کلاس بازی را نوشتهایم.
عبارت if __name__ == '__main__': دستور شرطی است که بررسی میکند آیا همین فایل به عنوان برنامه اصلی اجرا شده است یا نه.
- اگر این شرط True باشد، ابتدا نمونهای از کلاس CarRacing به نام car_racing میسازد.
- سپس متد racing_window() را از شیء car_racing فراخوانی میکند. این متد تمام متغیرهای بازی را مقداردهی کرده و حلقه اصلی آن را اجرا میکند.
به طور خلاصه این بلوک کد در پایتون، بازی ماشین (توابع و کلاسهای نوشته شده در اسکریپت) را وقتی اجرا میکند که همین اسکریپت به عنوان برنامه اصلی اجرا شده باشد.

با نوشتن این بلوک، بالاخره کد بازی ماشین در پایتون تمام شد. البته برای ساخت بازی ماشین روشهای دیگری هم وجود دارد. با دستکاری این کدها میتوانید ویژگیهای بیشتری هم به بازی اضافه بکنید.
نسخه کامل کد بازی ماشین در پایتون
در کادر زیر، نسخه کامل کد بازی ماشین در پایتون را نوشتهایم.
با کپی کردن این کد در محیط کدنویسی خودتان و قرار دادن عکسها در کنار فایل میتوانید به راحتی بازی را اجرا کنید. پیشنهاد میکنیم که در صورت تمایل متغیرها و توابع آن را دستکاری کنید.
چطور در فرادرس پایتون را بهتر یاد بگیریم؟
فرادرس یکی از بهترین تولید کنندگان محتوای آموزش به زبان فارسی است. این محتواها شامل مطالب مجله و فیلمهای آموزشی میشوند. فیلمهای آموزشی فرادرس حوزههای بسیار متنوعی را پوشش میدهند. زبان برنامه نویسی پایتون هم یکی از این حوزهها است. اگر آشنایی کمی با پایتون دارید، برای شروع یادگیری، میتوانید از فیلم آموزش رایگان پایتون در ۱۴۰ دقیقه فرادرس استفاده کنید. اما اگر مرحله مقدماتی را پشت سر گذاشتهاید، بهتر است به سراغ فیلمهای آموزش نکات پیشرفته و تخصصی پایتون در فرادرس بروید.
وبسایت آموزشی فرادرس، فیلمهای بسیار خوب و با کیفیتی را برای آموزش مفاهیم سطح بالای زبان پایتون تهیه کرده است. چند مورد از این فیلمها را در ادامه معرفی کردهایم.
- فیلم آموزش برنامه نویسی شی گرا در پایتون
- فیلم آموزش تجزیه و تحلیل و آماده سازی داده ها با پایتون + گواهینامه
- فیلم آموزش برنامه نویسی پایتون پیشرفته، توضیح ترفندهای Python + گواهینامه
- فیلم آموزش بازی سازی در پایتون با کتابخانه Pygame
- فیلم آموزش برنامه نویسی چندنخی و چندپردازشی در پایتون، بهینهسازی عملکرد، دوره پیشرفته + گواهینامه
برای مشاهده گزینههای بیشتر میتوانید به وبسایت فرادرس مراجعه کرده یا با کلیک بر روی تصویر زیر، فیلمهای مورد نیاز خود را مشاهده کنید.

جمعبندی
در این مطلب از مجله فرادرس، کد بازی ماشین در پایتون را پیادهسازی کردهایم. این نسخه، بازی سادهای در دسته بازیهای «Endless Runner» است. یعنی بازیهایی که حرکت بازیکن به صورت دائم برای کسب امتیازات بیشتر ادامه پیدا میکند. برای نوشتن بازی با پایتون از کتابخانههای Sys و Random و Pygame استفاده کردهایم. ماژول Pygame به طور اختصاصی برای ساخت بازی در پایتون طراحی شده است. کتابخانههای Sys و Random هم برای انجام کارهای کمکی مانند تولید تصادفی مکان حرکت ماشین دشمن و بستن صفحه برنامه به کار برده شدهاند.
بازی با پایتون یکی از جذابترین کاربردهای این زبان برنامه نویسی است. پایتون، سینتکس ساده، انعطافپذیری زیاد و کتابخانهها و فریمورکهای بسیار متنوع و قدرتمندی دارد. این ویژگیها باعث شدهاند که استفادههای بسیار گوناگونی پیدا کند. کاربرد پایتون در صنعت روزبهروز بیشتر هم میشود. مهارت بازیسازی از جذابترین کاربردهای این زبان است و میتواند فرصتهای شغلی مناسبی در مقابل توسعهدهندگان قرار بدهد.












