سورس بازی مار (Snake) به زبان C++
در این بخش سورس بازی مار (Snake) به زبان C++ را برای شما آماده کرده ایم که در محیط نرم افزار Visual Studio 2019 و زبان برنامه نویسی سی پلاس پلاس نوشته شده است. در ادامه می توانید توضیحات، تصاویر و همچنین فیلمی از نحوه کارکردن پروژه را مشاهده کنید.
توضیحات پروژه
این بازی در گذشته (قبل از تولید شدن بازی های مدرن و گرافیکی) یکی از محبوب ترین بازی ها بود و البته هنوز هم طرفداران زیادی در جهان دارد. بازی Snake اولین بار در سال 1997 و گوشی نوکیا 6110 ظاهر شد. در حال حاضر نسخه های مختلفی از این بازی برای گوشی های هوشمند تولید شده است.
سناریو مربوط به این پروژه از سه مرحله تشکیل شده است که در مرحله اول محیط بازی بدون دیوارهای داخلی است و فقط دو عدد غذا در محیط قرار داده می شود. در مرحله دوم تعدادی دیوار داخلی به محیط اضافه شده و همچنین تعداد غذا نیز افزایش می یابد. در مرحله سوم هم تعداد دیوارهای داخلی و غذا افزایش می یابد. در هر مرحله سرعت حرکت مار افزایش می یابد تا کنترل آن سخت تر شود. برای برنده شدن در هر مرحله بازیکن باید بتواند تمام غذاهای موجود در محیط بازی را بدون برخورد با دیوارهای داخلی و خارجی بخورد. بعد از اتمام سه مرحله تعیین شده شما برنده می شوید و در صورت تمایل می توانید دوباره بازی را انجام دهید.
قوانین بازی، همان قوانین رایج است. یعنی نباید به دیواره های محیط بازی و بدنه خود مار برخورد کنید. اگرم هم امتیاز خوردید، یک واحد به طول مار و 10 واحد به امتیاز شما اضافه می شود. برای حرکت دادن مار باید از کلیدهای جهت دار کیبورد (یعنی بالا، پایین، چپ و راست) استفاده کنید. اگر هیچ کلیدی فشار داده نشود، مار به آخرین سمتی که تغییر جهت داده است، ادامه حرکت می دهد. همچنین جهت حرکت پیشفرض مار به سمت راست تعیین شده است.
ساختار پروژه
این پروژه از چهار کلاس BoardManager، FoodManager، Snake و SnakeGame، سه فایل Helpers، CustomTypes و Main تشکیل شده است. کلاس BoardManager برای رسم محیط و اطلاعات بازی استفاده می شود. کلاس FoodManager برای رسم و مدیریت غذاها استفاده می شود. کلاس Snake عملیات مربوط به مار (مانند حرکت کردن، افزایش طول و غیره) را کنترل می کند. کلاس SnakeGame با استفاده از سه کلاس قبلی اجرای بازی را کنترل می کند. فایل Helper شامل توابع کاربردی است که در کل پروژه مورد استفاده قرار می گیرند. فایل CustomTypes شامل نوع های سفارشی استفاده شده در کل پروژه است. فایل Main هم شامل تابع main و جزئیات شروع بازی است.
شما با مشاهده سورس کد این پروژه می توانید با نحوه تعریف و استفاده از class ها، namespace ها، enum class ها و چندین مورد دیگر آشنا شده و مهارت برنامه نویسی خودتان را ارتقا دهید.
قسمت های از سورس کد
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | #include <iostream> #include <memory> #include "Helpers.h" #include "SnakeGame.h" auto print_start_message() -> void { helper::clear_console(); std::cout << "Your game is ready. Press any key to start..."; helper::wait_until_key_pressed(); } auto game_finished_callback(std::shared_ptr<SnakeGame> game) -> void { char user_selection; std::cout << "Game finished. Do you want play again? (y/n) >>> "; std::cin >> user_selection; if (user_selection == 'n' || user_selection == 'N') return; print_start_message(); game->reset(); game->start(game_finished_callback); } auto main() -> int { print_start_message(); auto snake_game = std::make_shared<SnakeGame>(); snake_game->start(game_finished_callback); return 0; } |
هیچ نظری ثبت نشده است