JAVA_902_P3.2.pdf

‫فاز سوم پروژه‬
‫درس برنامه نویسی شئگرا‬
‫موعذ ارسال‪ :‬چهارشنبه ‪ 21‬تیر ‪1391‬‬
‫فبص سَم پشٍطُ ثشًبهِ سبصی ضیءگشا‬
‫هْلت تحَیل‪ :‬چهارشنبه ‪ 21‬تیر ‪1391‬‬
‫نکات کلی‬
‫‪ ‬ثشای اسسبل ثِ آدسس صیش هشاجؼِ کٌیذ‪:‬‬
‫‪1‬‬
‫‪http://arsh.co/java902/‬‬
‫‪ ‬هَػذ تحَیل سبػت ‪ 16:59‬سٍص چْبسضٌجِ ‪ 11‬تیش ‪ 1۹91‬ثَدُ ٍ ثِ ّیچ ػٌَاى توذیذ ًخَاّذ ضذ‪.‬‬
‫‪ ‬تأخیش تب ‪ 1‬سبػت‪ ،‬ثِ اصای ّش ‪ ۹‬دقیقِ هَجت کسش ضذى ‪ً %1‬وشُ‪ ،‬اص ‪ 1‬سبػت تب ‪ 12‬سبػت هَجت کسش ضذى‬
‫‪ً %12‬وشُ‪ ،‬اص ‪ 12‬سبػت تب ‪ 15‬سبػت‪ ،‬ثِ اصای ّش ‪ 1‬دقیقِ هَجت کسش ضذى ‪ً %1‬وشُی دیگش ٍ ثیي ‪ 15‬سبػت‬
‫تب ‪ 28‬سبػت ثبػث کسش ضذى ‪ً %52‬وشُ هیضَد‪ .‬تأخیش ثیطتش اص ‪ 28‬سبػت قبثل قجَل ًیست‪.‬‬
‫‪ ‬قغغ ثَدى ایٌتشًت خَاثگبُ‪ ،‬کٌذی پبیگبُ ایٌتشًتی داًطکذُ‪ ،‬توبم ضذى کبست ایٌتشًت ٍ … ّیچکذام دلیل‬
‫هَجْی ثشای تأخیش ًیستٌذ‪.‬‬
‫‪ ‬سَاالت خَد سا دس سبیت ‪ ٍ piazza‬ثب تگ هٌبست هغشح کٌیذ‪.‬‬
‫‪ً ‬حَُ تحَیل حضَسی هتؼبقجبً اػالم خَاّذ ضذ‪.‬‬
‫فبص سَم پشٍطُ ثشًبهِ سبصی ضیءگشا‬
‫‪11‬‬
‫دقت کنید که آدرس درست ‪ arsh.co‬است و نه ‪!arsh.co.ir‬‬
‫‪1‬‬
‫مقذمً‬
‫‪1‬سالم‪،‬‬
‫ّذف فبص سَم ایجبد اهکبى اجشای ثبصی دس ضجکِ ٍ ثش سٍی‬
‫سایبًِّبی هجضا ثِ ّوشاُ اضبفِ کشدى دیگش قبثلیت ّبی هفیذ‬
‫است‪.‬‬
‫مذل کلی بازی در شبکً‬
‫دس هذل اغلی ثبیذ ثتَاًین ثبصی سا ثشای دو ثبصیکي ٍ ثش سٍی دٍ‬
‫سایبًِ کِ ثِ ٍسیلِ ضجکِ ثِ ّن هتػل ضذُ اًذ اجشا کٌین‪.‬‬
‫ّش ثبصیکي ثب یکی اص ایي دٍ سایبًِ تؼبهل داسد ٍ ثبصی سا اص دیذ خَدش هیثیٌذ‪.‬‬
‫توبهی پیغبمّب ٍ ٍقبیغ ٍ سًٍذ ثبصی ثِ غَست یکسبى تَسظ دٍ ثبصیکي ثِ غَست ّوضهبى دیذُ هیضَد ثِ جض هَاسد صیش‪:‬‬
‫‪ ‬پیغبم دیذُ ضذى گٌج یک خبًِ تَسظ ثبصیکٌی کِ ًَثت اٍست دیذُ هیضَد(پیغبهی کِ ثِ ثبصیکي دیگش ًطبى‬
‫دادُ هیضَد غشفبً ًطبى هیدّذ کِ ایي ثبصیکي گٌج ایي خبًِ سا دیذُ است)‪.‬‬
‫‪ ‬اًتخبةّب تَسظ ثبصیکٌی کِ ًَثت اٍست اًجبم هیگیشد(دقت کٌیذ کِ ثبصیکٌی کِ ًَثت اٍ ًیست ًیض اًتخبةّب‬
‫سا هیثیٌذ ٍلی ًویتَاًذ اًتخبة سا اًجبم دّذ)‪.‬‬
‫وحوي ارتباط رایاوًٌا‬
‫ثشای استجبط ثیي اجشاّب اص پشٍتکل ‪ TCP/IP‬استفبدُ کٌیذ‪ .‬جضییبت آى دست خَدتبى است ٍلی خَة است اص پشٍتکلی‬
‫استفبدُ کٌیذ کِ پیبدُ سبصی آى تَسظ دیگشاى(ٍ احیبًبً دس صثبًْبی ثشًبهِ ًَیسی دیگش) سبدُ ثبضذ‪ .‬پشٍتکل استفبدُ ضذُ‬
‫سا ثِ غَست خالغِ هستٌذ کٌیذ ٍ دس کٌبس هٌبثغ پشٍطُ قشاس دّیذ‪.‬‬
‫فشؼ ثش ایي است کِ ّش دٍ اجشای ثبصی سٍی ًقطِ اغلی (آًچِ دس فبص ‪ 1 ٍ 1‬استفبدُ کشدُایذ) است‪.‬‬
‫فبص دٍم پشٍطُ ثشًبهِ سبصی ضیءگشا‬
‫‪1‬‬
‫یکی اص اجشاّب ًقص سشٍس سا ثشػْذُ داسد ٍ اجشای دیگش ثِ ػٌَاى کالیٌت ضٌبختِ هیضَد‪ .‬فقظ سشٍس است کِ گٌج توبم‬
‫خبًِّب سا هیداًذ ٍ ایي اعالػبت سا فقظ دس غَست دسخَاست کالیٌت ٍ دس هَاقغ الصم دس اختیبس اٍ قشاس هیدّذ‪.‬‬
‫هی تَاًیذ فشؼ کٌیذ کِ ًِ کالیٌت ٍ ًِ سشٍس دس کلیت پشٍتکل استجبعی سؼی دس خشاثکبسی ًذاسًذ ٍلی هوکي است‬
‫کالیٌت ثخَاّذ اعالػبت غیش الصم اص سشٍس دسخَاست کٌذ ٍ یب ّش یک اص دٍ اجشا ثخَاٌّذ حشکبت ًبهوکي اًجبم‬
‫‪1‬‬
‫ػکس اص ‪Deinha1974@devianART‬‬
‫دٌّذ(هثالً ضوبسُ تبسّب سا ‪ 8 ٍ 7‬اػالم کٌٌذ ٍ یب یک ثبصیکي ثخَاّذ ثِ عشص ػجیجی ثِ یک خبًِ ثپشد یب گٌج یک خبًِ‬
‫تَسظ سشٍس دٍ چیض هتفبٍت اػالم ضَد)‪.‬‬
‫توبهی استجبعبت ٍ دسخَاست ّب ٍ حشکبت ثبیذ ثِ ًحَی تَسظ عشفیي ثشسسی ضًَذ ٍ دس غَست تطخیع خشاثکبسی عشف‬
‫دیگش ثب پیغبهی هتَقف ضًَذ‪.‬‬
‫رووذ اجرا‬
‫دٍ ًَع اجشای گشافیکی ٍ تحت کٌسَل هیثبیست تَسظ ثشًبهِ ضوب پطتیجبًی ضًَذ‪.‬‬
‫اجرای گرافیکی‬
‫دس اثتذا ثب اًتخبة گضیٌِ‪ ،‬کالیٌت یب سشٍس ثَدى ّش اجشا تَسظ کبسثش هطخع هیضَد‪ .‬سپس ضوبسُ پَست ثشقشاسی استجبط‬
‫ثِ سشٍس ٍ پس اص آى ‪ IP‬سشٍس ٍ ضوبسُ پَست استجبط ثِ کالیٌت دادُ هیضَد‪ .‬سشٍس دس ایي هذت هٌتظش ثشقشاسی استجبط‬
‫تَسظ کالیٌت ثَدُ است‪.‬‬
‫پس اص ثشقشاسی استجبط ّش ثبصیکي ًبم خَدش سا ٍاسد هیکٌذ ٍ ثبصی تَسظ ثبصیکي سشٍس ضشٍع هیضَد‪.‬‬
‫سًٍذ ثبصی ّوبًٌذ آًچِ دس فبصّبی قجلی گفتِ ضذُ ٍ دس هحیظ گشافیکی اًجبم هیپزیشد‪ّ .‬وبًغَس کِ گفتِ ضذ سًٍذ ثبصی‬
‫ثبیذ تَسظ دٍ ثبصیکي ثِ غَست یکسبى دیذُ ضَد‪.‬‬
‫اجرای تحت کنسول‬
‫گضیٌِی کالیٌت یب سشٍس ثَدى‪ً ،‬بم ثبصیکي ٍ ‪ IP‬سشٍس ٍ ضوبسُ پَست ثِ غَست آسگَهبى ثِ ثشًبهِ ضوب دادُ هیضَد‪.‬‬
‫ثبصی تَسظ ثبصیکي سشٍس ضشٍع هیضَد‪.‬‬
‫سًٍذ ثبصی ّوبًٌذ آًچِ دس فبصّبی اٍل گفتِ ضذُ ٍ تحت کٌسَل اًجبم هیپزیشد‪ّ .‬وبًغَس کِ گفتِ ضذ سًٍذ ثبصی ثبیذ‬
‫تَسظ دٍ ثبصیکي ثِ غَست یکسبى دیذُ ضَد ٍلی ّش اًتخبة تَسظ ثبصیکٌی کِ ًَثت اٍست اًجبم هیپزیشد‪.‬‬
‫قابلیت صحبت بیه بازیکىان‬
‫ثبصیکٌبى ثبیذ ثتَاًٌذ دس حیي ثبصی ثب یکذیگش غحجت کٌٌذ‪ .‬ایي غحجت کشدى ثِ غَست هتٌی ٍ ضجیِ چت است‪ .‬ایي‬
‫قبثلیت سا دس غفحِی اغلی ثبصی ٍ ثِ غَست هیٌیوبل قشاس دّیذ‪.‬‬
‫امکان مشاٌذي تاریخچً بازی‬
‫فبص سَم پشٍطُ ثشًبهِ سبصی ضیءگشا‬
‫دقت کٌیذ کِ هوکي است یکی اص ثبصیکٌبى ثِ غَست گشافیکی ٍ دیگشی تحت کٌسَل اجشا ضَد‪.‬‬
‫‪۹‬‬
‫دس حیي ثبصی ثبصیکي ثبیذ ثتَاًذ دس تبسیخچِ حبلت ثبصی حشکت کٌذ ثذیي غَست کِ ثب ػقت ٍ جلَ ضذى ثتَاًذ ٍضؼیت‬
‫ٍ هکبى هْشُ ّب ٍ اهتیبص ثبصیکٌبى ٍ گٌج ّذف دس گزضتِ ثبصی سا ثش سٍی غفحِی اغلی دٍثبسُ هشٍس کٌذ(ثب تغییش ٍضؼیت‬
‫غفحِ ی اغلی ثِ گزضتِ ٍ تبکیذ ثش ایٌکِ دیگش حبلت فؼلی ًوبیص دادُ ًطذُ است)‪ .‬دس ایي حبلت ٍضؼیت فؼلی ثبصی‬
‫تغییش ًویکٌذ ٍ ثبصیکي هیثبیست ثبصی سا اص ّوبى ٍضؼیت فؼلی اداهِ دّذ‪.‬‬
‫ایي قبثلیت سا ثب دٍ دکوِ ػقت ٍ جلَ (ٍ ثبصگطت ثِ حبلت فؼلی) دس غفحِی اغلی ثبصی پیبدُ سبصی کٌیذ‪.‬‬
‫ومري بىذی و ومري اضافی‬
‫قسوت اغلی ًوشُ ثِ پیبدُ سبصی هٌبست ٍ سبختبس دسست ٍ کبسا ٍ ّوچٌیي اجشای دسست تؼلق داسد‪.‬‬
‫‪12‬دسغذ ًوشُ ثِ اهکبى اًتقبل ًقطِ اص سشٍس ثِ کالیٌت اختػبظ داسد(دس ایي حبلت ثشًبهِ ضوب ثبیذ قبثلیت خَاًذى ًقطِ‬
‫اص فبیل سا داضتِ ثبضذ)‪.‬‬
‫‪ ۹5‬دسغذ ًوشُ ثِ پیبدُ سبصی هستقل سشٍس ٍ ایجبد اهکبى ثبصی ثیص اص دٍ ًفش تؼلق داسد‪ .‬دس ایي حبلت ّیچ یک اص دٍ‬
‫اجشای ثبصیکٌبى سشٍس ًیست ٍ اعالػبت هشثَط ثِ گٌج ّب دس اختیبس اجشای سَهی ثِ ػٌَاى سشٍس است ٍ ّوبٌّگی سًٍذ‬
‫کلی ثبصی ًیض تَسظ ایي سشٍس اًجبم هیگیشد‪ .‬دس ایي حبلت ثبیذ اهکبى اتػبل ثیص اص دٍ کالیٌت ثِ ػٌَاى ثبصیکي ًیض‬
‫ٍجَد داضتِ ثبضذ‪ّ .‬وچٌیي دس ایي حبلت ثبیذ سشٍس ثتَاًذ چٌذ ثبصی هختلف سا ثِ غَست ّوضهبى اجشا کٌذ‪ .‬سَاالت‬
‫هشثَط ثِ ایي ثخص سا دس پیبصا ثب تگ ‪ server‬ثفشستیذ‪.‬‬
‫‪12‬دسغذ ًوشُ ثِ ّوبٌّگ ثَدى پشٍتکلّبی استجبعی دٍ یب چٌذ ًفش اص داًطجَیبى تؼلق هیگیشد‪ .‬دس ایي حبلت اجشای‬
‫کالیٌت یکی اص داًطجَیبى ثب سشٍس دیگشی اهکبىپزیش است(ثِ ًظش ثشخی اص دستیبساى استبد چقذس خَة هیضَد کِ‬
‫پشٍتکل سشٍس هجضا هطخع ضَد ٍ ّوِ داًطج َیبى اص آى پیشٍی کٌٌذ ٍ کالیٌت ٍ سشٍس ّوبٌّگ ثٌَیسٌذ)‪ .‬پیص اص‬
‫ضشٍع ایي هَسد سا ثب دستیبساى استبد ّوبٌّگ کٌیذ‪.‬‬
‫‪12‬دسغذ ًوشُ ثِ اهکبى رخیشُ تبسیخچِ ثبصی دس اًتْبی ثبصی دس فبیل ٍ پخص آى اختػبظ داسد‪.‬‬
‫‪ 52‬دسغذ ًوشُ ثِ پیبدُ سبصی ثبصی ٍ هحیظ گشافیکی آى ثش سٍی پلتفشمّبی هَثبیل(اًذسٍیذ‪ )... ٍ iOS ،‬تؼلق هیگیشد‪.‬‬
‫فبص دٍم پشٍطُ ثشًبهِ سبصی ضیءگشا‬
‫‪2‬‬
‫پیص اص ضشٍع ایي هَسد سا ثب دستیبساى استبد ّوبٌّگ کٌیذ‪.‬‬
‫ًَضتي ثبصیکي َّضوٌذ فوقالعاده‪ ،‬کوبکبى ًوشُی اضبفی داسد‪.‬‬
‫دس غَستی کِ ایذُای ثشای ًوشُ اضبفی داسیذ هیتَاًیذ آى سا ثب دستیبساى استبد دس هیبى ثگزاسیذ‪.‬‬
‫حذاکثر نمره ی قابل کسب از نمرات اصلی و اضافی(پس از تحویل پروژه و مشخص شذن نمرات) ‪1۷۱‬درصذ‬
‫است‪.‬‬
‫وحوي فرستادن کذ‬
‫کذ خَد سا دس قبلت یک فبیل ‪ zip‬ثفشستیذ‪ .‬سیطِ ایي فبیل ‪ zip‬ثبیذ حبٍی یک فَلذس ثب ًبم ‪ razeJangal‬ثبضذ کِ‬
‫هؼبدل ‪ package‬سیطِ ثشًبهِ ثب ّویي ًبم است‪ .‬ایي فبیل ‪ zip‬حبٍی فبیلّبی هتٌی ‪ّ .class ًِ ٍ( .java‬بی کبهپبیل‬
‫ضذُ) است‪ً .‬بم فبیل ‪ zip‬سا ‪ JAVA902P3.zip‬ثگزاسیذ‪.‬‬
‫هستٌذ هشثَط ثِ پشٍتکل ٍ احیبًبً دیگش هستٌذات سا دس دسٍى فَلذس ‪ doc‬ثیشٍى اص توبم پکیجّب قشاس دّیذ‪.‬‬
‫هتذ ‪ Main‬دس ایي فبص ثبیذ دس کالس ‪ razeJangal.multi.MultiRunner‬ثبضذ‪.‬‬
‫ثِ ػٌَاى آسگَهبى اٍل ثِ ثشًبهِ ضوب یکی اص سضتِّبی "‪ "console‬یب "‪ "gui‬ثِ تشتیت ًطبى دٌّذُی اجشای تحت‬
‫کٌسَل ٍ گشافیکی ٍ سپس ًبم ثبصیکي دادُ هیضَد‪.‬‬
‫دس غَست اجشای تحت کٌسَل پس اص ایي دٍ آسگَهبى دس اثتذا یکی اص سضتِّبی "‪ ٍ "server‬یب "‪ "client‬ثِ تشتیت‬
‫ًطبىدٌّذُی سشٍس یب کالیٌت ثَدى دادُ هیضَد‪ .‬دس غَست کالیٌت ثَدى دس اداهِ ‪ ٍ IP‬ضوبسُ پَست سشٍس ٍ دس غَست‬
‫سشٍس ثَدى تٌْب ضوبسُ پَست دادُ هیضَد‪.‬‬
‫دس غَست پیبدُ سبصی ثخصّبی اضبفی ثِ ًحَی هٌبست اهکبى تٌظیوبت هشثَط سا فشاّن کٌیذ‪.‬‬
‫نمونه نحوه اجرا‪:‬‬
‫‪java razeJangal.multi.MultiRunner gui‬‬
‫‪java razeJangal.multi.MultiRunner console Packman server 3500‬‬
‫‪java razeJangal.multi.MultiRunner console Jackman client 192.168.1.10 3500‬‬
‫پیص اص اسسبل هغوئي ضَیذ کِ کذ ضوب ثِ دسستی کبهپبیل ٍ اجشا هیضَد‪.‬‬
‫هَفق ثبضیذ‬
‫فبص سَم پشٍطُ ثشًبهِ سبصی ضیءگشا‬
‫‪5‬‬