سورس بازی پک من به زبان سی پلاس پلاسReviewed by صابر بوستانی on Oct 30Rating:
سورس بازی پک من به زبان سی پلاس پلاس

سورس بازی پک من به زبان سی پلاس پلاس

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

جهت دانلود سورس بازی پک من به زبان سی پلاس پلاس به ادامه مطلب مراجعه نمایید.

 

 

در قسمت زیر فایل های کتابخانه را فراخوانی می کنیم.

 

خط زیر تعریف متغیر ها و فراخوانی کتابخانه ها را به صورت استاندارد تبدیل می کند.

 

در خط پایین یک آرایه دو بعدی برای نقشه تعریف می کنیم.

 

در قطع زیر مقدار آرایه را مقدار دهی می کنیم و نقشه اصلی برنامه را داخلش قرار میدیم.

 

تابع زیر جهت نمایش نقشه هست و سطر ها را چاپ می کند.

 

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

 

تابع زیر جهت انتقال در موقعیت افقی و در راستای X هست.

 

تابع زیر جهت انتقال در موقعیت عمودی و در راستای Y هست.

 

تابع زیر هم جهت انجام جابجایی درنقشه طبق X وY دریافتی جابجا می شود.

 

تابع زیر موقعیت فعلی X را بر میگرداند

 

 

یک ساختار با نام Walk جهت دریافت اطلاعات تعداد میوه های خورده شده می باشد.

 

 

ساختاری جهت مشخص نمودن مکان میوه در نقشه که موقعیت میوه را نگه می دارد.

 

تابع زیر هم جهت جایگزین کردن و نمایش آرایه ی نقشه در محیط برنامه می باشد که با استفاده از جایزینی نقطه به نقطه این کار را انجام می دهد.

 

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

 

خطوط زیر نیز برای جابجایی بین خانه ها می باشند که بر اساس کلید های جهت نما مقداری را داخل آرایه اضافه و یا کم می کنند.

 

تابع اصلی برنامه که به شرح کامل آن می پردازیم.

 

 

متغیر زیر اجازه جابجایی بازیکن یا دشمن را می دهد.

 

دو متغیر زیر موقعیت بازیکن در ابتدا بازی رو نمایش می دهد.

 

دو متغیر برای نگهداری موقعیت قبلی

 

دو متغیر زیر نیز برای ذخیره موقعیت دشمن می باشد.

 

در خط زیر سه خط خروجی برای نمایش در صفحه برنامه داریم که راهنمایی برای کاربر نمایش میدهد.

 

خط زیر هم سه سطح بازی را چاپ می کند که شامل سخت متوسط و آسان می باشد.

 

متغیر متنی برای ذخیره سطح بازی تعریف می کنیم

 

یک متغیر هم برای ذخیره سرعت بازی هر سطح دارای یک سرعت خاص می باشد.

 

در خط زیر مقدار سطح برنامه از ورودی دریافت می شود.

 

حال در دستور شرطی زیر به بررسی سطح ورودی می پردازد و بر اساس سطح مقداری برای متغیر سرعت می دهد.

در صورتی که N وارد شده باشد حالت بازی Normal در نظر گرفته می شود و سرعت بازی برابر با ۲ می شود.

در صورتی که H وارد شده باشد حالت بازی Normal در نظر گرفته می شود و سرعت بازی برابر با ۱ می شود.

در صورتی هم که هیچ کدام از مقدار های بالا نباشد از دستور شرطی می گذرد و سرعت بازی برابر ۳ برای سطح Easy در نظر گرفته می شود.

 

در خط زیر نیز صفحه نمایش پاک می شود.

 

در خط زیر تابع نمایش نقشه فراخوانی می شود و نقشه بازی نمایش داده می شود.

 

در خط زیر به موقعیت X و Y مشخص شده برای بازیکن می رود و حرف H را به عنوان نماید کاربر چاپ می کند منظور از H کلمه Human می باشد.

 

یک متغیر از نوع عدد صحیح تعریف می شود و مقدار آن برابر ۰ می شود.

 

در خط زیر یک متغیر تعریف می شد تا امتیاز دریافتی توسط کاربر در آن ذخیره شود.

 

تابع FindPath که عملکرد پیدا کردن کاربر توسط دشمن را انجام میداد فراخوانی می شود و موقعیت کاربر و دشمن به آن داده می شود.

 

در خط زیر یک حلقه بی تهایت اجرا می شود و در صورتی از کار می افتد که متغیر Running برابر False شود.

 

به مختصات کاربر که همان X و Y کاربر می شود می رود و یک جای خالی چاپ می کند.

 

موقعیت فعلی کاربر را نیز در متغیر های موقعیت قبلی کاربر قرار میدهد.

 

در دستور شرطی زیر به بررسی فشرده شدن کلید جهت نمای بالا می پردازد در صورتی که برابر با True باشد به مقدار Y یکی اضافه می کند

 

در دستور شرطی زیر به بررسی فشرده شدن کلید جهت نمای پایین می پردازد در صورتی که برابر با True باشداز مقدار Y یکی کم می کند

 

در دستور شرطی زیر به بررسی فشرده شدن کلید جهت نمای چپ می پردازد در صورتی که برابر با True باشد به مقدار X یکی اضافه می کند

 

در دستور شرطی زیر به بررسی فشرده شدن کلید جهت نمای راست می پردازد در صورتی که برابر با True باشد از مقدار X یکی کم می کند

 

در شرط زیر هم به بررسی برابر بودن مقدار X و Y جدید با مقادیر قدیمی می پردازد و در صورتی که برابر نباشند دشمن را به خانه قبلی کاربر هدایت می کند.

 

کاربر را به خانه جدید منتقل می کند.

 

در جایی که دشمن قرار دارد یک نقطه می گذارد که خوردن آن برای کاربر امتیاز دارد.

 

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

 

}

 

در نقطه ای که دشمن قرار دارد یک حرف E به نماد Enemy قرار می دهد.

 

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

 

 

در خطوط زیر نیز به موقعیت ۳۲و۱۸ در صفحه نمایش رفته و امتیاز کاربر را که تعداد دانه های خورده شده است قار می دهد.

 

 

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

 

سپس با نمایش پیغامی اعلام می دارد که کاربر باخته و امتیاز کاربر را نمایش می دهد.