باسمه تعالی درس مبانی برنامهسازی گروههای ۱و ۲ پروژه مبانی برنامهسازی (فرودگاه) دانشکدهی مهندسی کامپیوتر موعد ارسال فاز اول :یکشنبه ۲۲آذر ● چنانچه سوالی در مورد پروژه داشتید که برای سایرین نیز میتواند مفید باشد در پیاتزا مطرح کنید. ● به ازای هر روز تاخیر در تحویل پروژه (حداکثر ۲روز) ٪۱۱از نمرهی آن کاسته میشود. ● نحوهی ارسال پروژه متعاقبا در اختیار شما قرار خواهد گرفت. ● برنامه ارسالی میبایست به زبان Cو با استفاده از کتابخانهی GTK+باشند .استفاده از هرگونه امکانات زبان C++و یا استفاده از کتابخانههای نوشته شده به این زبان و یا استفاده از موتورهای بازی ممنوع است. ● این پروژه از ۱۱۱نمره میباشد و نمره امتیازی ندارد. ● در صورت مشاهدهی تقلب برای هر دو طرف نمرهی ۱در این پروژه منظور خواهد شد. ● پروژه باید به صورت گروههای دونفره انجام شود. ● این پروژه به صورت دوفازی تحویل گرفته میشود. ● از قسمت موارد دیگر باید حداقل ۰۱نمره بگیرید تا به همراه ۰۱نمره قسمتهای اصلی نمره کامل پروژه را دریافت کنید. ● فرستادن کدها از طریق جاج صورت میگیرد و نحوه فرستادن آن متعاقبا اعالم میشود. پروژهای که برای این درس در نظر گرفته شده است ،پیادهسازی یک بازی به نام فرودگاه است که در زیر توضیح داده میشود: هدف بازی: هدف این بازی فرود آوردن هواگردها قبل از اتمام سوخت ،بدون برخورد به یکدیگر ،در باند یا مکان فرود مربوط به خودشان میباشد. صفحه بازی: هر mapشامل دو باند است که با زاویه ۵۰درجه نسبت به یکدیگر قرار گرفتهاند .یکی از باندها به رنگ قرمز و دیگری به رنگ زرد است .هواپیماهای زرد باید در باند زرد و هواپیماهای قرمز نیز در باند قرمز فرود بیایند . برای فرود بالگرد ها هم یک محل فرود اختصاصی وجود دارد که تنها هلیکوپتر ها می توانند در آن فرود بیایند. انواع هواپیما و بالگرد: دو نوع هواپیما در بازی وجود دارد .یکی به رنگ قرمز و دیگری به رنگ زرد .یک نوع بالگرد نیز در بازی وجود دارد. این هواگردها هر ۷ثانیه یک بار به صورت تصادفی از یک نقطه بیرون صفحه وارد میشوند. در هر باند فقط از یک سمت میتوان در آن باند فرود آمد و اجازهی فرود به صورت برعکس از طرف برج مراقبت (طراحان پروژه) داده نمیشود . در صورت فرود هواپیمایی در باند اشتباه امتیازی برای آن منظور نمی شود .توجه کنید که هواپیماها منطقا نمی توانند در باند هلیکوپتر فرود بیایند ! مسیرحرکت: کاربر با کلیک بر روی یک هواگرد و کشیدن ماوس بر روی صفحه میتواند مسیر حرکت آن هواگرد را تعیین کند. در صورت عدم تعیین مسیر حرکت برای هرکدام از هواگردها ،آن هواگرد در همان راستا به حرکت خود ادامه خواهد داد و در صورتیکه به صورت کامل از صفحه خارج شود منفجر میشود. تنها قسمتی از مسیر که هنوز طی نشده باید نمایش داده شود. سوخت: با توجه به کیفیت عالی ساخت هواپیماها و هلیکوپتر های بازی ،همه آن ها دچار مشکل نشت سوخت هستند ! هر هواپیما حداکثر ۰۱ثانیه و هر بالگرد نیز حداکثر ۵۱ثانیه فرصت دارد تا فرود بیاید ،وگرنه در اثر نشت سوخت منفجر خواهد شد ! ظرفیت سوخت هر هواگرد باید در کنار آن نشان داده شود. امتیازدهی (:)statistics تعداد هواپیماها و هلیکوپتر های نشانده شده در باند درست به عنوان امتیاز فرض میشود .همچنین باید بیشترین امتیاز ثبت شده بازی در هر )highscore( mapرا نشان دهید. اتمام بازی: درصورتیکه یک هواگرد منفجر شود بازی به اتمام میرسد .حال ممکن است این منفجر شدن هنگام خروج یک هواگرد از صفحه باشد یا بر اثر نشت سوخت و یا اینکه هنگام برخورد دو هواپیما این انفجار صورت گرفته باشد. موارد اصلی پروژه: درست نشان دادن صفحه بازی (باندها ،مسیرحرکت هواگرد ها) صحیح بودن منطق بازی دارا بودن منو برای شروع بازیموارد دیگر: ۲۱( : Save / Loadامتیاز)کاربر این امکان را داشته باشد که در حین بازی آن را ذخیره کرده و بعدا دوباره loadکند .به این نکته توجه کنید که مسیر حرکت اجسام که توسط کاربر تعیین شده نیز باید ذخیره شود. ۲۱( : Pauseامتیاز)کاربر بتواند بازی را متوقف کند و پس از آن با زدن دکمه ای دوباره به بازی خود ادامه دهد .هواگرد ها نیز پس از شروع دوباره بازی در ادامه همان مسیر قبلی خود حرکت کنند. صداگذاری ۲۱( :امتیاز)به طور مثال می توانید برای موتور هواپیما ها و هلیکوپتر ها و نیز انفجار آن ها از افکت های صوتی استفاده کنید . libraryپیشنهادیgstreamer : سایه ۱۱( :امتیاز)هنگام حرکت هواپیما و هلی کوپتر سایه ی آن ها روی زمین نمایش داده شود و با نزدیک شدن به زمین هنگام فرود اندازه سایه تغییر کند. انیمیشنها ۱۱( :امتیاز)از انیمیشن در جاهایی مثل چرخش پرههای هلیکوپتر ،انفجارها ،فرودآمدن هواپیما (برای مثال هنگام فرود هواپیما کوچکتر شود) استفاده میشود. مپهای مختلف ۲۱( :امتیاز)قبل از ورود به بازی کاربر نقشه مورد نظر خود را انتخاب میکند و این نقشه ها باید دارای پس زمینه ،موقعیت قرارگیری باند ها و … متفاوتی باشد. هشدار قبل از برخورد دو هواگرد ( ۱۱امتیاز)اگر در صورت عوض نشدن مسیر دو هواگرد در چند ثانیهی آینده برخوردی بین آن ها اتفاق بیفتد ،بازی باید به کاربر هشدار دهد (مثال با عوض کردن رنگ هواگرد ها یا کشیدن دایرهای رنگی دور آنها) وزش باد ( ۱۰امتیاز)برای حرکت در خالف جهت باد باید سوخت بیشتری مصرف کنیم و حرکت در جهت باد سبب صرفه جویی در مصرف سوخت می شود .از آن جا بازی خیلی به شرایط واقعی شبیه است در محیط آن باد هم می وزد ! جهت وزش هم باید به طور مالیم در طول بازی تغییر کند .همچنین باید مکانیزمی برای نشان دادن جهت وزش باد به کاربر پیاده کنید .مقدار تاثیر باد در سوخت به عهده خود شماست و میتوانید به دلخواه خود و برحسب منطقی بودن آن مقدار تاثیردهی باد را تعیین کنید . فاز بندی پروژه : این پروژه در دو فاز تحویل گرفته خواهد شد .فاز اول شامل پیاده سازی منطق بازی و محیط گرافیکی آن می باشد به این ترتیب که یک نقشه به همراه باندهای فرود داریم که هواگرد ها صرفا از نقطه ای وارد محیط شده و به پرواز خود ادامه میدهند. در فاز دوم باید امکان تعیین مسیر برای هواگردها و فرود آمدن آن ها را پیاده سازی کنید .همچنین مواردی مانند انفجار و ثبت امتیاز هم باید در این فاز پیاده شود. موفق باشید؟!
© Copyright 2025 Paperzz