فاز دوم پروژه درس برنامه نویسی شئگرا بهار 92 استاد صفرنژاد موعد ارسال 14 :تیر آرین اربابی هادی ذوالفقاری فروغ مهرعلیان سید علیرضا میر محمد صادقی فاز دوم پروژه برنامه سازی شیءگرا CElization مهلت تحویل 41 :تیر نکات کلی در این فاز از پروژه باید بازی ساخته شده در فاز قبل را توسعه دهید. مواردی که در این فاز اضافه می شوند قابلیت چند نفره شدن بازی ،نیرو های تهاجمی ،نبرد ،تغییر محیط بازی از کنسول به گرافیکی و امکان اجرای بازی روی شبکه می باشد. محل ارسال پروژه ،متعاقبا به شما اعالم خواهد شد. فایلهای پروژه خود را در قالب فایل zipارسال نمایید. موعد تحویل 11ام تیر بوده و به هیچ عنوان تمدید نخواهد شد. تأخیر تا 1ساعت ،به ازای هر 3دقیقه موجب کسر شدن %1نمره ،از 1ساعت تا 41ساعت موجب کسر شدن %42 نمره ،از 41ساعت تا 42ساعت ،به ازای هر 4دقیقه موجب کسر شدن %1نمرهی دیگر و بین 42ساعت تا 14ساعت باعث کسر شدن %22نمره میشود .تأخیر بیشتر از 14ساعت قابل قبول نیست. قطع بودن اینترنت خوابگاه ،کندی پایگاه اینترنتی دانشکده ،تمام شدن کارت اینترنت و … هیچکدام دلیل موجهی برای تأخیر نیستند .بنابراین پیشنهاد میشود جوابهای خود را در دانشکده ارسال کنید. سواالت خود را در Piazzaمطرح کنید. نحوه تحویل حضوری تمرین متعاقباً اعالم خواهد شد. فاز اول پروژه برنامه سازی شیءگرا 1 قابلیت چند نفره شدن بازی: در این فاز بر خالف فاز قبلی بیش از یک کاربر در سرزمین بازی می کند .برای هر بازیکن یک رنگ اختصاص داده می شود تا بازیکن ها از یکدیگر متمایز شوند .رنگ هر بازیکن در نمایش نیروها و ساختمان های آن بازیکن باید مشخص باشد .هر بازیکن با کامپیوتر خود با بازی در ارتباط است و تمامی فرآیند هایی را که در بازی رخ میدهد ،در صورتی که در دید نقشه وی باشد ،مشاهده می کند .اطالعات مربوط به قلمرو هر بازیکن نیز تنها برای خود بازیکن قابل مشاهده هستند. در ابتدای بازی به ازای هر بازیکن یک کارگر در یک محل تصادفی از نقشه قرار می گیرد .سپس طبق سناریوی بازی که در فاز قبلی تعریف شد (و در این فاز این سناریو کامل تر می شود) هر بازیکن به توسعه سرزمین خود می پردازد. تمام منابع کسب شده برای هر بازیکن مستقال متعلق به آن بازیکن است و هر بازیکن با استفاده از منابعی که در اختیار دارد می تواند به تولید نیرو و ساخت ساختمان بپردازد .بدیهتا هر نیرو یا ساختمان تنها متعلق به بازیکن سازنده ی آن می باشد. نحوه ی اجرای بازی: اجرای بازی به صورت فازهای پشت سر هم می باشد .در هر فاز هر بازیکن یک نوبت دارد که ترتیب نوبت ها به ترتیب شماره بازیکن ها می باشد. در هر نوبت هر بازیکن می تواند دستوراتی را برای اجرا تعیین کند .بعد از مشخص کردن دستورات مورد نظر برای آن نوبت ،بازیکن باید مشخص کند که دستور جدیدی برای این نوبت ندارد و نوبت به بازیکن بعدی برسد .همچنین باید یک سقف زمان (مثال 12ثانیه) در نظر گرفته شود که بعد از گذشت این زمان سیستم به صورت خودکار نوبت را تمام شده فرض کند و نوبت به بازیکن بعدی داده شود. فاز اول پروژه برنامه سازی شیءگرا 4 نحوه ارتباط بین اجراها: در این فاز باید بتوان بازی را به صورت شبکه ای اجرا کرد .جزئیات نحوه ارتباط دست خودتان است و پروتکل ارتباطی را باید خودتان طراحی کنید. برای اجرای بازی ابتدا سرور اجرا می شود و بازیکن ها هر کدام در قالب یک کالینت اجرا شده و به سرور با پورت داده شده متصل میشوند. فقط سرور است که از همه جزئیات نقشه خبر دارد و در صورت لزوم در اختیار کالینت ها قرار می دهد. امکان دارد در خارج از قوانین بازی درخواستی از طرف بازیکنان وارد شود که باید به نوعی تمامی ارتباط ها و درخواست ها و حرکات کنترل شود و با پیغام های مناسب از خرابکاری جلوگیری کند. نحوه شروع بازی: پس از شروع ابتدا شماره پورت سرور خواسته می شود و بعد کالینت ها به تعداد بازیکنان اجرا می شوند و در مورد هر کالینت IPو شماره پورت سرور برای برقراری ارتباط داده میشود(.به این ترتیب بر روی پورت های مختلف امکان اجرای بازی های متفاوت و همزمان وجود خواهد داشت). پس از برقراری ارتباط هر کالینت با سرور ،نام بازیکن گرفته میشود و در کل بازی با این نام شناخته میشود .و طبق روند گقته شده بازی در محیط گرافیکی پیش میرود. تعیین قبلی دستورات: در مدتی که بازیکن منتظر تمام شدن نوبت دیگر بازیکنان است می تواند دستوراتی را برای اجرا در نوبت خود انتخاب کند ولی این دستورات تا زمانی که نوبت او نشود اجرا نخواهند شد .هنگامی که نوبت بازیکن شود تمام دستوراتی که بازیکن از قبل نوبتش تعیین کرده در نظر گرفته می شود .اگر بازیکن این دستورات را تغییری ندهد و دستورات همچنان معتبر باشند در پایان نوبتش این دستورات قبلی به همراه دستورات جدید محتمل اجرا خواهند شد. انواع دستورات: ساخت و ساز توسط کارگر در خانه ای که در آن حضور دارد. فرستادن کارگر برای کار در معدنی که کارگر در آن حضور دارد. تولید نیرو توسط ساختمانی که امکان تولید نیرو دارد و در حال تولید نیرو نیست. انجام عملیات تجاری در بازار جابهجایی نیرو به یک خانه دیگر دستور حمله به یک خانه که شامل نیرو یا ساختمان دشمن است. قابلیت جنگ: فاز اول پروژه برنامه سازی شیءگرا انتخاب موضوع تحقیقاتی 3 در این فاز از پروژه دو نوع ساختمان و چهار نوع نیروی جدید اضافه می شود که قابلیت جنگ بین بازیکن ها را بوجود می آورند. ساختمانهای جدید: سرباز خانه: در این ساختمان می توان به تولید نیروی جنگی پیاده پرداخت. اصطبل: در این ساختمان می توان به تولید نیروی جنگی اسب سوار پرداخت. نیروهای جنگی: در این فاز 1نیروی جدید می توان تولید کرد که همگی نظامی بوده و از دو رده ی اسب سوار و پیاده تشکیل می شوند. برای هر سرباز چند ویژگی نظامی وجود دارد که پیروزی در نبردها به این ویژگی ها وابسته است. ویژگی ها امتیاز در مقابل سرباز پیاده امتیاز در مقابل اسب سوار امتیاز دفاعی امتیاز هجومی فاز اول پروژه برنامه سازی شیءگرا 1 حداکثر میزان سالمتی انواع نیروها: سرباز نیزه دار: ویژگی ها مقدار امتیاز در مقابل سرباز 32 پیاده امتیاز در مقابل اسب سوار 42 امتیاز دفاعی 02 امتیاز هجومی 42 حداکثر میزان سالمتی 422 سرباز تبر دار: ویژگی ها مقدار امتیاز در مقابل سرباز 02 پیاده امتیاز در مقابل اسب سوار 12 امتیاز دفاعی 02 امتیاز هجومی 42 حداکثر میزان سالمتی 422 ویژگی ها مقدار امتیاز در مقابل سرباز 22 پیاده امتیاز در مقابل اسب سوار 12 فاز اول پروژه برنامه سازی شیءگرا اسب سوار گرز دار: 2 امتیاز دفاعی 12 امتیاز هجومی 02 حداکثر میزان سالمتی 322 اسب سوار چابک: ویژگی ها مقدار امتیاز در مقابل سرباز 32 پیاده امتیاز در مقابل اسب سوار 22 امتیاز دفاعی 12 امتیاز هجومی 02 حداکثر میزان سالمتی 322 نبرد: برای شروع نبرد بازیکن برای سرباز مورد نظرش یکی از خانه های مجاور را که ساختمان یا نیروی دشمن در آن قرار دارد فاز اول پروژه برنامه سازی شیءگرا 0 را انتخاب می کند .با توجه به اینکه در خانه مقصد چه چیزی قرار دارد یکی از حاالت زیر رخ می دهد: -1اگر در آن خانه ساختمان دشمن وجود داشت ساختمان از بین خواهد رفت و سرباز مهاجم در آن خانه قرار خواهد گرفت . -4اگر در آن خانه کارگر دشمن قرار داشت آن کارگر کشته شده و از بازی حذف می شود و همچنین سرباز مهاجم در آن خانه قرار خواهد گرفت. -3اگر در آن خانه نیروی نظامی دشمن وجود داشت برای هر کدام از 4طرف درگیری امتیاز نبرد حساب می شود. برای هر سرباز امتیاز نبرد برابر است با با توجه به اینکه سرباز طرف مقابل پیاده یا سوار است امتیاز در مقابل سرباز پیاده یا امتیاز در مقابل اسب سوار که برای این بازیکن میشود. و با توجه اینکه این سرباز در حال حمله به یک خانه است یا در حال دفاع در خانه ی خود است امتیاز هجومی یا امتیاز دفاعی می شود. فرض کنید امتیاز نبرد برای دو سرباز درگیر مقدار و و میزان سالمتی آنها و باشد .برای هر کدام از دو سرباز را محاسبه می کنیم و هر کدام که مقدار بیشتری باشد سرباز مربوطه برنده ی نبرد می شود .سرباز مغلوب کشته شده و از بازی حذف می شود و سرباز پیروز در صورتی که دفاع کننده باشد در جای خود باقی می ماند و اگر حمله کننده باشد به محل قرار گیری سرباز مدافع کشته شده قرار می گیرد .همچنین سالمتی سرباز پیروز به مقدار کاهش میابد. هزینه ساخت و ساز نیروها و ساختمان های جدید: ساخت سربازخانه 12 42 22 422 4 اصطبل 42 22 22 422 4 سرباز تبردار 4 32 2 42 - فاز اول پروژه برنامه سازی شیءگرا نام نوبت های الزم برای طال سنگ چوب اندازه 7 سرباز نیزه دار 4 32 2 22 - اسب سوار گرزدار 11 02 2 122 - اسب سوار چابک 12 22 2 42 - تحقیقات اضافه شده برای بخش نظامی: Animal husbandry Horseback Riding Advance d Basic Combat Military Description امکان تحقیقات بعدی در بخش نظامی امکان ساخت اصطبل و تربیت نیرو های اسب سوار فاز اول پروژه برنامه سازی شیءگرا 4 امکان ساخت سربازخانه و سربازهای پیاده ETA Knowledge Lumber Stone Gold Name Id 4 0 20 0 20 Military 26 10 15 40 0 70 Horseback Riding 27 8 15 50 0 50 Basic Combat 28 Animal Husbandry 29 میزان امتیاز دفاعی و هجومی نیروهای اسب 20 30 300 0 200 سوار %02افزایش می یابد میزان امتیاز دفاعی و هجومی نیروهای پیاده %02 20 30 350 0 150 Advanced Armors 30 افزایش می یابد گرافیک 0بعدی: برای این فاز باید بازی را در محیط گرافیکی به نمایش بیاورید .کاربر باید بتواند سرزمین بازی را به صورت نمایی از باال مشاهده کند و بتواند نیروها و ساختمان های روی این نقشه را انتخاب کرده و دستور مورد نظر را به آنها بدهد .برای دستورات جا به جایی یا حمله کاربر باید بتواند خانه ی مقصد را با کلیک مشخص کند ولی تا زمان به پایان نرسیدن نوبت کاربر این جا به جایی یا حمله نباید صورت بگیرد .در مدتی که نوبت بازیکن به پایان نرسیده است بازیکن باید بتواند با کلیک روی نیروها یا ساختمان ها دستور داده شده به آنها را در صورت وجود نگاه کند .مثال برای دستور جا به جایی خانه مقصد مشخص شود .برای دستورات ساختمان ها می توانید طوری پیاده سازی کنید که با کلیک روی ساختمان لیست نیروهای قابل تولید توسط آن ساختمان را مشاهده کنید و با کلیک روی آنها ساختمان به تولید آن نیرو بپردا زد .همچنین اگر ساختمان در حال تولید نیرویی بود نیز باشد قابل مشاهده باشد .در صورتی که دستور مورد نظر قابل اجرا نیست مثال نیرو امکان جا به جایی به خانه مقصد را نداشته باشد و ساختمان در حال تولید نیرو بوده و امکان تولید نیروی جدید نداشته باشد باید در نظر گرفته شود .همچنین باید قابلیت کنسل کردن دستور داده شده به یک نیرو یا ساختمان نیز وجود داشته باشد. برای مواردی مانند انتخاب موضوع تحقیقی و موارد مشابه می توانید از منویی در باالی صفحه استفاده کنید. در کل برای interfaceدست شما باز است و در موقع تحویل با توجه به کیفیت کار ارائه شده نمره داده خواهد شد. قابلیت گفتگوی میان بازیکنان: بازیکنان باید این قابلیت را داشته باشند تا با هم صحبت کنند .که این صحبت کردن به صورت متنی و در قالب چت می قابلیت ذخیره بازی واجرای ادامه بازی قبلی: قابلیت saveو loadبرای بازی وجود داشته باشد به این صورت که کلیه تاریخچه و اتفاقات رخ داده در بازی ذخیره میگردد و در شروع بازی امکان loadکردن بازی قبلی و ادامه آن وجود داشته باشد. فاز اول پروژه برنامه سازی شیءگرا باشد برای این منظور در صفحه اصلی امکانات الزم گرافیکی برای این کار را فراهم کنید. 0 ایجاد امکان بازی با کامپیوتر (: )AI برای این بخش بایستی برنامه شما قابلیت بازی با کامپیوتر را هم داشته باشد .به این ترتیب از صفحه اصلی بازیکن انتخاب می کند که کامپیوتر جز بازیکنان باشد یا خیر .روندی که کامپیوتر برای بازی طی میکند میتواند کامال رندوم باشد. (این بخش امتیازی ا ست و افزایش هوشمندی به بازیکن خودکار ،به نسبت (به صورت رقابتی) میتواند نمره اضافی خوبی داشته باشد ) :Documentation در قالب یک فایل PDFتوضیحاتی کوتاه درباره پروژه تحویل داده شده تهیه کنید .این فایل موارد زیر را شامل شود: نحوه تعریف پروتکل شبکه کالس های تعریف شده (با نمودار) نحوه پیاده سازی قسمت های مختلف مثال موارد زیر: oگفت و گوی درون بازی Save oو load AI o نحوه نمره دهی این فاز با احتساب نمره های اضافی حداکثر 322نمره دارد .در نظر داشته باید برای هر بخش حداکثر نمره ای که می توان گرفت نوشته شده است و نمره ای که در نهایت برای هر مورد داده می شود کامال وابسته به کیفیت کار انجام شده فاز اول پروژه برنامه سازی شیءگرا 12 در آن بخش است. پیاده سازی بازی به صورت شبکه ای (تا سقف 12نمره) چند نفره شدن بازی و جابهجای صحیح نوبت بین بازیکن ها (تا سقف 32نمره) گرافیک ( 42نمره) oدر صورت داشتن گرافیک زیبا و پیشرفته تا 42نمره اضافی (در کل 12نمره) امکان پذیر است پیاده سازی بخش نظامی (تا سقف 02نمره) oاضافه کردن تحقیقات نظامی ( 42نمره) oاضافه کردن ساختمان ها و نیرو های نظامی ( 42نمره) oپیاده سازی نبردها به صورت خواسته شده ( 42نمره) قابلیت گفت و گو (تا سقف 42نمره) امکان saveو loadبازی (تا سقف 32نمره) امکان بازی با کامپیوتر (( )AIتا سقف 42نمره) رعایت اصول شی گرایی در کد (تا سقف 32نمره) ( Documentation تا سقف 32نمره) همچنین در صورت عدم پیاده سازی موارد مربوط به فاز قبل به نسبت اهمیت آنها برای هر بخش در این فاز نمره کسر خواهد شد. فاز اول پروژه برنامه سازی شیءگرا 11
© Copyright 2025 Paperzz