برنامه نویسی

حدس دوئل: ساختن یک بازی شماره مبتنی بر نوبت با Pygame و Amazon Q CLI

Guess Duel یک بازی حدس زدن به شماره دو نفره است که من با استفاده از Pygame با کمک Amazon Q CLI برای چالش بازی Amazon Q CLI اجرا کردم. یک بازیکن ، مهاجم ، با استفاده از سطح دشواری انتخاب شده ، تعداد پنهان ایجاد می کند ، در حالی که بازیکن دیگر ، مدافع ، سعی می کند شماره را به درستی حدس بزند. مدافع دارای برخی از نقاط بهداشتی (HP) و تعداد محدودی از فرصت ها برای گذراندن آزمون است. اگر مدافع شماره را درست حدس بزند ، حمله را از بین می برد. اگر او شکست بخورد ، حمله موفقیت آمیز است. سه سطح دشواری وجود دارد – آسان ، متوسط ​​و سخت – و تحت هر یک از این موارد ، بازیکن باید از پنج سطح فزاینده سخت زنده بماند تا قهرمان آن سطح شود.

شرح تصویر

من این پروژه را به عنوان بخشی از چالش بازی Amazon Q CLI شروع کردم ، جایی که از توسعه دهندگان خواسته می شود بازی ها را با استفاده از توسعه دهنده Amazon Q CLI و وبلاگ در مورد این روند توسعه دهند. در حالی که فرایند واقعی توسعه به خودی خود سرگرم کننده بود ، تنظیمات سخت تر از آن بود که لازم باشد ، به خصوص به عنوان کاربر ویندوز. در مرحله اول ، من مجبور شدم WSL (زیر سیستم ویندوز را برای لینوکس) نصب کنم زیرا نصب و راه اندازی CLI برای یک محیط لینوکس در نظر گرفته شده بود. من در WSL تازه کار بودم ، بنابراین مجبور شدم بفهمم چگونه می توانم آن را تحت تنظیمات ویندوز فعال کنم ، اوبونتو را نصب کنم و ترمینال را اجرا کنم. دوم ، من نیاز به نصب Python ، Pip و چند بسته مورد نیاز در WSL صرفاً برای اطمینان از اینکه حتی می توانم به ابزارهای CLI دسترسی پیدا کنم.

بعداً ، من با سرعت دیگری روبرو شدم – من قبلاً پیگام را روی ویندوز پایتون نصب کرده بودم ، اما وقتی سعی کردم بازی را از WSL اجرا کنم ، کار نمی کند زیرا WSL اجازه GUI را نمی داد. من روش سختی را یاد گرفتم که کتابخانه های GUI مانند پیگام به طور پیش فرض با WSL خوب بازی نمی کنند. بنابراین مجبور شدم جهت را تغییر دهم و همه چیز را به جای آن به ویندوز پایتون منتقل کنم. این به معنای حفر پرونده های پروژه WSL من از ویندوز (\\\\ wsl $ \\) و اجرای بازی از فرمان سریع به جای ترمینال WSL است. چند بار تلاش کرد تا همه آن را به درستی پیکربندی کنند ، اما در نهایت ، Amazon Q CLI و Pygame در محیط صحیح با هم خوب بازی می کردند.

پس از نصب نصب ، من از Amazon Q CLI برای ساخت پایه برنامه Pygame استفاده کردم – تعریف حالت هایی مانند منو ، صفحه های ورودی ، بیننده نتایج و صفحه نمایش. نسخه اولیه ساده بود ، اما Amazon Q CLI افزودن لایه بر روی لایه بسیار ساده بود.

شرح تصویر

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

داشتن آمازون q cli مفید در کل فرآیند توسعه یک مزیت بزرگ بود. هر زمان که مجبور شدم یک ویژگی بازی جدید یا رفع اشکالات منطقی را طراحی کنم ، در مورد سریع و محکم تایپ می کردم و نکات کد مفیدی را برای من فراهم می کرد که وقت زیادی را برای من صرفه جویی می کرد. یکی از ویژگی های پیچیده تر که من اجرا کردم سیستم پیشرفت سطح بود. این شامل ردیابی سطح فعلی ، تنظیم مجدد وضعیت بازی بین سطح و چاپ مشروط پیام های پیروزی پس از اتمام یک بازیکن هر پنج سطح در یک گروه بود.

مشکل دوم که من به آن رسیدم ، تعریف دقیق نقش هر دو بازیکن بود. در ابتدا ، من حدس را “مهاجم” خوانده بودم ، اما در ضمن ، معقول تر بود که نقش های آنها را تلنگر بزنم. شخصی که شماره را تنظیم می کند واقعاً “حمله” را انجام می دهد ، در حالی که حدس می زند با مرگ نکند “دفاع” کند. برای انجام این تغییر وضوح UI بهبود یافته و همچنین گیم پلی.

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

با پیشرفت بازی ، من برای تقویت گیم پلی موارد کوچک با کیفیت زندگی اضافه کردم. صداهای پاسخ صحیح و نادرست ، موسیقی ، میله های HP متحرک و دکمه های قابل کلیک با بازخورد بصری در Hover یا Click وجود دارد. بازیکن بعد از هر دور یا سطح ، صفحه نمایش نتیجه مشخصی دارد و برای ادامه ، راه اندازی مجدد یا بازگشت به منوی اصلی دسترسی دارد. بعد از بازی در هر پنج سطح در یک گروه ، بازیکن با یک صفحه پیروزی قهرمان دسته بندی شد.

به طور کلی ، این پروژه سرگرم کننده و آموزشی بود. من یاد گرفتم که چگونه می توان حالت های بازی را به خوبی در Pygame مدیریت کرد ، چگونه می توان طراحی کاربر پسند را با صدا و انیمیشن ترکیب کرد ، و چگونه می توان با یک ابزار هوش مصنوعی همکاری کرد تا چیزی را پایان دهد. Amazon Q CLI به من این امکان را داد که به سرعت و به سرعت تکرار کنم ، که برای یک پروژه توسعه یک نفره مانند این ایده آل بود. من همچنین فهمیدم که پیش از این که بتوانم به Q اعتماد کنم تا به q برسانم ، برای مرتب کردن چیزها ، به Q -Prounds Schank و تفکر کامل در مورد منطق بازی من ضروری است.

این بازی به Amazon Q CLI Game Challenge ارسال شد ، که انگیزه ای دلپذیر-یک تی شرت-برای Devs دارد که بازی های خود را به صورت رایگان می سازند و آزاد می کنند. اما گذشته از پاداش ، من از اینکه این بازی تا چه حد پیشرفت کرده و آنچه را که در انجام آن آموخته ام خوشحالم. من پالایش آن را ادامه خواهم داد ، شاید اضافه کردن چند نفره محلی یا حتی تبدیل آن به یک بازی آنلاین با سوکت یا تابلوی رهبر در مقطعی.

اگر می خواهید پروژه را مشاهده کنید ، به زودی کد منبع و نسخه ی نمایشی گیم پلی را بارگذاری می کنم. با تشکر از خواندن داستان من ، و امیدوارم که این امر به شما الهام بخش باشد که خودتان یک بازی را امتحان کنید – و به خصوص با Amazon Q CLI.
از طریق repo در https://github.com/mds05/guess-duel بروید

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا