AP_HW3.pdf

‫الزحويالزحین ‌‬
‫‌‬
‫ثسن ‌‬
‫اهلل‬
‫‌‬
‫‌‬
‫ثزًبهِسبسی‌پیطزفتِ ‌‬
‫‌‬
‫‪Advanced Programming‬‬
‫داًطىذُ‌هٌْذسی‌وبهپیَتز ‌‬
‫هذرس‪‌:‬آرش‌تَول ‌‬
‫‌‬
‫‌‬
‫توزیي‌ضوبرُ‌‪‌ 3‬‬
‫تبریخ‌تحَیل‪‌27‌:‬آثبى‬
‫توزیيّب‌هَارد‌سیز‌را‌ثِ‌دلت‌هطبلؼِ‌وٌیذ‪:‬‬
‫‌‬
‫لجل‌اس‌اًجبم‌‬
‫ضوبرُی‌داًطجَیی‌خَد‌را‌ثِ‌غَرت‌سیز‌ثٌَیسیذ‪:‬‬
‫‌‬
‫ثزًبهِّب‌‬
‫‪ ‬در‌خط‌اٍّل‌ّز‌یه‌اس‌ ‌‬
‫‪//‌ID: your Student ID‬‬
‫ثزًبهِّب‌فبیل‌هزثَطِ‌را‌در‌یه‌پَضِ‌ثب‌ًبم‌‪‌assignment#3_stdID‬لزار‌دّیذ‌(وِ‌‬
‫ّوِی‌ ‌‬
‫‪ ‬ثؼذ‌اس‌ًَضتي‌ ‌‬
‫هیثبضذ)‌ٍ ‌سپس ‌ایي ‌پَضِ ‌را ‌فطزدُ ‌وٌیذ‪‌.‬فبیل ‌فطزدُ ‌ضذُ ‌را ‌ثِ‌‬
‫ضوبرُی ‌داًطجَیی ‌ضوب ‌ ‌‬
‫‌‬
‫در ‌آى ‌‪‌ stdID‬‬
‫آدرس‌‪ ap.2012.fall@gmail.com‬ارسبل‌ًوبییذ‪.‬‬
‫‪ ‬ػٌَاى ‌ایویل ‌ثبیذ ‌ثِ ‌غَرت ‌‪‌ assignment#3_stdID‬ثبضذ‪‌ ،‬وِ ‌در ‌آى ‌‪‌ stdID‬ضوبرُ ‌داًطجَیی ‌ضوب‌‬
‫است‪.‬‬
‫ثزًبهِّب ‌ٍ ‌فبیل ‌فطزدُ ‌ضذُ ‌ٍ ‌یب ‌ػٌَاى ‌ایویل ‌فزستبدُ ‌ضذُ‪‌ ،‬هَجت ‌ػذم ‌تػحیح‌‬
‫ًبمگذاری ‌فبیل ‌ ‌‬
‫‪ ‬اضتجبُ ‌در ‌ ‌‬
‫هیضَد‪.‬‬
‫توزیي‌ضوب‌ ‌‬
‫ثزًبهِّبی‌ضوب‌ثبیذ‌دلیمبً‌ثِ‌غَرت‌گفتِ‌ضذُ‌در‌هسئلِ‌ثبضذ‪.‬‬
‫ًحَُی‌ٍرٍدی‌گزفتي‌ٍ‌خزٍجی‌دادى‌ ‌‬
‫‌‬
‫‪‬‬
‫تستّبی‌ًوًَِ‌‌‬
‫هیضَد‌وِ‌حتوبً‌یه‌ثبر‌ ‌‬
‫ثزًبهِّبی‌ضوب‌تؼذادی‌تست‌دادُ‌خَاّذ‌ضذ‪‌.‬تَغیِ‌ ‌‬
‫‪ ‬ثِ‌ّز‌یه‌اس‌ ‌‬
‫ثزًبهِّبیتبى‌ثذّیذ‪.‬‬
‫را‌ثِ‌ ‌‬
‫ًبمگذاری ‌هٌبست ‌هتغیزّب ‌را ‌فزاهَش ‌ًىٌیذ‪‌ .‬ثِ‌‬
‫ثزًبهِّبیتبى ‌ٍ ‌ ‌‬
‫لسوتّبی ‌هختلف ‌ ‌‬
‫‌‬
‫‪ ‬گذاضتي ‌وبهٌت ‌ثزای ‌‬
‫ًوزُای‌اس‌ّز‌سؤال‌است‪.‬‬
‫وبهٌتگذاری‌جشٍ‌ ‌‬
‫‌‬
‫ثزًبهِتبى‪‌.‬‬
‫خػَظ‌تَاثغ‌ٍ‌هتغییزّبی‌اغلی‌ ‌‬
‫ًوزُی‌ایي‌توزیي‌وبستِ‌خَاّذ‌ضذ‪.‬‬
‫ثزًبهِّب‪‌%20‌،‬اس‌ ‌‬
‫‪ ‬ثِ‌اسای‌ّز‌رٍس‌تأخیز‌در‌ارسبل‌ ‌‬
‫ًوزُی‌هٌفی‌تؼلك‌خَاّذ‌گزفت‪.‬‬
‫ًوزُی‌سؤال‪‌ ‌،‬‬
‫ثزًبهِّبی‌هطبثِ‌ثِ‌هیشاى‌ ‌‬
‫‪ ‬ثِ‌ ‌‬
‫هسئلِی‌‬
‫‌‬
‫ضوبرُی ‌‬
‫‌‬
‫‪ّ ‬زگًَِ ‌سؤال ‌در ‌هَرد ‌توزیٌبت ‌را ‌ثب ‌ػٌَاى ‌]‪‌ assignment#3_question[x‬وِ ‌]‪‌ [x‬‬
‫هَرد‌ًظز‌است‪‌،‬ثِ‌آدرس‌‪‌apgroup-2012-fall@googlegroups.com‬ارسبل‌وٌیذ‪‌ .‬‬
‫در ‌یه ‌سهیي ‌ثبسی ‌‪‌ n×m‬تؼذادی ‌هَجَد ‌سًذُ ‌اس ‌اًَاع ‌هَجَدات ‌سبختِ ‌ضذُ ‌در ‌ثزًبهِ ‌لزار ‌دارًذ‪ّ‌ .‬ز ‌ًَع ‌اس‌‬
‫هَجَداتِ‌سًذُ‪‌،‬سزػت‌در‌ٍاحذ‌سهبى‪ ،‬ػوز‪‌،‬ػوك‌دیذ‪‌،‬ثزتزی‌(اٍلَیت)‌ًسجت‌ثِ‌دیگزاى‌ٍ‌ًوبد‌وِ‌ًطبًگز‌آى‌هَجَد‌‬
‫است‌را‌دارًذ‪‌ .‬‬
‫تز‌هَجَد‌ضؼیفتز‌را‌اس‌‬
‫‌‬
‫‌‬
‫هَجَد‌لَی‬
‫ت‌هختلف‌لزار‌ًویگیزًذ‌ٍ ‌اگز‌ایي‌گًَِ‌ضَد‌‬
‫‌‬
‫‌در‌ّیچ‌سلَلی‌‪‌ 2‬هَجَد‌ثب‌الَیّ‬
‫هَجَد‌ّن‌ًَع‌ٍجَد‌داضتِ‌ثبضٌذ‌ٍ‌یىی‌اس‌آىّب‌اس‌جٌس‌هذوز‌ٍ‌دیگزی‌هًَج‌‬
‫‌‬
‫ثیي‌خَاّذ‌ثزد‪‌.‬اگز‌در‌یه‌سلَل‌‪‌2‬‬
‫ثبضذ‪‌ ،‬یىی ‌ثِ ‌جوؼیت ‌آى‌گًَِ ‌افشٍدُ ‌هی‌ضَد‪(‌ .‬آى ‌هَجَد ‌ثِ ‌ّوبى ‌سلَل‌ ‌افشٍدُ ‌هی ‌ضَد‪‌ ).‬اگز‌هَجَدی ‌تَاى‌‬
‫ّب‌را‌ًذاضتِ‌ثبضذ‪‌،‬حزوت‌ًویوٌذ‪‌ .‬‬
‫‌‬
‫‌‬
‫حزوت‌ثِ‌ّیچ‌یه‌اس‌سوت‬
‫وٌٌذ‪‌.‬حزوت‌ایي‌هَجَدات‌ثبیذ‌ثِ‌گًَِای‌ثبضذ‌وِ‌ثب‌‬
‫‌‬
‫‌‬
‫حزوت‌هی‬
‫هَجَدات‌ثِ‌طَر‌تػبدفی‌ثِ‌یىی‌اس ‌ّطت ‌جْت ‌‬
‫اًبییّبیطبى ‌(سزػت ‌ٍ ‌ػوك ‌دیذ) ‌در ‌جْتی ‌حزوت ‌وٌٌذ ‌وِ ‌خَردُ ‌ًطًَذ ‌ٍ ‌تب ‌هی‌تَاًٌذ ‌هَجَدات‌‬
‫تَجِ ‌ثِ ‌تَ ‌‬
‫ضؼیفتز‌را‌ثخَرًذ‪‌ .‬ثِ‌ػالٍُ‌ایي‌وِ‌جوؼیت‌خَد‌را‌افشایص‌دٌّذ‪(‌ .‬الگَریتن‌ثْتز‌ًوزُ‌ثیطتزی‌دارد‪‌ .‬در‌ثذتزیي‌‬
‫‌‬
‫حبلت‌هیتَاًذ‌تػبدفی‌ثبضذ‪‌ ).‬‬
‫‌‬
‫ضجیِسبسی‌ًوبیذ‪‌ .‬‬
‫ّبیی‌را‌پیبدُسبسی‌وٌیذ‌وِ‌ایي‌جٌگل‌را‌ ‌‬
‫‌‬
‫‌‬
‫حبل‌ضوب‌ثبیذ‌والس‬
‫‪Block‬‬
‫{‬
‫ایي‌والس‌ًطبى‌دٌّذُ‌یه‌خبًِ‌اس‌ًمطِ‌است‌ٍ‌هوىي‌است‌تؼذادی‌‪‌Animal‬در‌خَد‌داضتِ‌ثبضذ‪ًْ‌.‬بیت‌تؼذاد‌‬
‫حیَاًبت‌اس‌یه‌ًَع‌وِ‌در‌یه‌ثالن‌لزار‌هیگیزًذ‌‪‌3‬تب‌است‌ثِ‌ػالٍُ‌‪‌1‬ظزفیت‌رسرٍ‌ثزای‌هَجَد‌تبسُ‌هتَلذ‌ضذُ‪.‬‬
‫‌‬
‫ًَِ‌تبثؼی‌وِ‌ًیبس‌داریذ‌را‌پیبدُسبسی‌‬
‫‌‬
‫تَجِ‌داضتِ‌ثبضیذ‌وِ‌هتغیزّب ‌ًجبیذ‌ ‪‌public‬ثبضٌذ‪‌.‬ضوب‌هجبس‌ّستیذ‌ّزگ‬
‫ًوبییذ‪‌ .‬‬
‫}‬
‫‪Map‬‬
‫{‬
‫ًمطِی‌ثبسی‌است‌وِ‌ضبهل‌ ‪ّ‌block‬بست‪‌Constructor‌.‬ایي‌والس‌ثبیذ‌‪‌2‬همذار‌اس‌جٌس ‪‌int‬ثگیزد‌وِ‌تؼذاد‌‬
‫‌‬
‫ستَىّبی‌آى‌را‌هطخع‌وٌذ‪‌ .‬‬
‫سطزّب‌ٍ‌ ‌‬
‫ًَِ‌تبثؼی‌وِ‌ًیبس‌داریذ‌را‌پیبدُسبسی‌‬
‫‌‬
‫تَجِ‌داضتِ‌ثبضیذ‌وِ‌هتغیزّب ‌ًجبیذ‌ ‪‌public‬ثبضٌذ‪‌ٍ‌.‬ضوب‌هجبس‌ّستیذ‌ّزگ‬
‫ًوبییذ‪‌ .‬‬
‫}‬
‫‪Animal‬‬
‫{‬
‫ایي‌والس‌پذر‌والس‌توبم‌حیَاًبت‌است‪.‬‬
‫ایي‌والس‌ثبیذ‌ثِ‌غَرت‌ ‪‌Abstract‬ثبضذ‪‌ .‬‬
‫}‬
‫‪Woman‬‬
‫{‬
‫}‬
‫‪Man‬‬
‫{‬
‫}‬
‫حیَاًبتی ‌وِ ‌اس ‌والس ‌‪‌ Woman‌ ٍ‌ Man‬ثِ ‌ػالٍُ ‌‪‌ Animal‬ارث ‌هی‌ثزًذ)‪‌ (multiple inheritance‬‬
‫هطخػبت‌سیز‌را‌دارا‌هیثبضٌذ‌‪‌ :‬‬
‫‌‬
‫والسّبی‪ّ‌Eagle‌ٍ‌Rabbit‌،Deer‌،Fox‌،Lion‬ستٌذ‌وِ‌ثِ‌غَرت‌اٍّلیِ‌‬
‫‌‬
‫ًوبد ‌‬
‫ػوز ‌‬
‫سزػت ‌‬
‫ػوك‌دیذ ‌‬
‫الَیت ‌‬
‫هزد‌‪‌/‬سى ‌‬
‫ًبم ‌‬
‫‪L‬‬
‫‪10‬‬
‫‪3‬‬
‫‪E‬‬
‫‪10‬‬
‫‪5‬‬
‫‪F‬‬
‫‪10‬‬
‫‪2‬‬
‫‪D‬‬
‫‪10‬‬
‫‪4‬‬
‫‪4‬‬
‫‪5‬‬
‫‪6‬‬
‫‪5‬‬
‫‪3‬‬
‫‪3‬‬
‫‪4‬‬
‫‪5‬‬
‫‪5‬‬
‫‪Man‬‬
‫‪Woman‬‬
‫‪Man‬‬
‫‪Woman‬‬
‫‪Man‬‬
‫‪Woman‬‬
‫‪Man‬‬
‫‪Woman‬‬
‫‪Lion‬‬
‫‪4‬‬
‫‪3‬‬
‫‪2‬‬
‫‪Eagle‬‬
‫‪‌ Fox‬‬
‫‪‌ Deer‬‬
‫‪R‬‬
‫‪10‬‬
‫‪2‬‬
‫‪2‬‬
‫‪2‬‬
‫‪1‬‬
‫‪Man‬‬
‫‪Woman‬‬
‫‪‌ Rabbit‬‬
‫حیَاى‌ضؼیفتز‌اس‌خَد‌را‌ثخَرد‌‪ٍ‌1‬احذ‌ثِ‌سزػتص‌افشٍدُ‌هی‌ضَد‪‌.‬‬
‫‌‬
‫ثبیذ‌ثِ‌ایي‌ًىتِ‌تَجِ‌وزد‌وِ‌اگز‌حیَاًی‌‪‌10‬‬
‫ػوز‌حیَاًی‌ثِ‌غفز‌رسیذ‌هیهیزد‪‌ .‬‬
‫‌‬
‫حزوت‌یه‌ٍاحذ‌اس‌ػوز‌ّز‌حیَاى‌ون‌هیضَد‌ٍ‌ٍلتی‌‬
‫‌‬
‫در‌ّز‌‪‌10‬‬
‫‪Forest‬‬
‫{‬
‫غذا‌سدُ‌هیضَد‪.‬‬
‫‌‬
‫تبثغ‌‪‌start‬دارد‌وِ‌در‌اثتذا‌ایي‌تبثغ در‌‪‌main‬‬
‫ّبی‌هَرد‌ًظز‌هیسبسد‪.‬‬
‫‌‬
‫در‌ایي‌تبثغ‌اس‌وبرثز‌اًذاسُ‌ًمطِ‌ٍ‌تؼذاد‌اًَاع‌حیَاًبت‌پزسیذُ‌ٍ‌ثِ‌همذار‌گفتِ‌ضذُ‌اس‌ضیء‬
‫حبًیِ‌یهثبر‌ثِ‌رٍس‌هی‌وٌذ‪.‬‬
‫‌‬
‫تبثغ‌‪‌update‬وِ‌اطالػبت‌را‌ّز‌‪‌1‬‬
‫هی‌تَاًیذ‌تَاثغ‌هَرد‌ًیبس‌دیگزی‌ّن‌‌پیبدُسبسی‌ًوبییذ‪‌ .‬‬
‫‌‬
‫تَجِ‪‌:‬‬
‫}‬
‫ی‌ًمطِ‌اس‌ٍرٍدی‌هیخَاًذ‪‌.‬پس‌اس‌ایي‌هزحلِ‌ثبیذ‌تؼذاد‌حیَاًبت‌ٍ‌هحل‌‬
‫‌‬
‫‌‬
‫ی‌ضوب‌اثتذا‌دٍ‌ػذد‌ثِ‌ػٌَاى‌اًذاسُ‬
‫‌‬
‫ثزًبهِ‬
‫س‌آى‌ثِ‌اًذاسُی‌تؼذاد‌دادُ‌ضذُ‪‌،‬هختػّبت‌‬
‫‌‬
‫ثزای‌ّز‌حیَاى‌اثتذا‌تؼذاد‌آى‌را‌هیخَاًین‌ٍ‌پس‌ا‬
‫‌‬
‫آًْب‌را‌تؼییي‌وٌین‪‌ .‬‬
‫هحل‌اٍّلیِ‌ی‌حیَاى‌را‌ثِ‌غَرت‌دٍ‌ػذد‌غحیح‌ٍ‌جٌسیّت‌آى‌را‌ثِ‌غَرت‌وبروتز‌”‪‌ “m‬یب‌”‪‌ “w‬اس‌ٍرٍدی‌دریبفت‌‬
‫هیوٌین‪‌.‬تزتیت‌حیَاًبت‌ثِ‌غَرت‌‪‌ Rabbit‌،Deer‌،Fox‌ ،Eagle‌ ،Lion‬است‪ٍ‌.‬رٍدی‌سیز‌یه‌ًوًَِ‌اس‌ٍردی‌‬
‫‌‬
‫ضبخع‌سطز‌ٍ‌ستَى‌اس‌غفز‌ضزٍع‌هیضَد‪‌ .‬‬
‫‌‬
‫هجبس‌است‪‌.‬‬
‫‪10 10‬‬
‫‪1‬‬
‫‪11m‬‬
‫‪2‬‬
‫‪33m‬‬
‫‪45w‬‬
‫‪1‬‬
‫‪56w‬‬
‫‪2‬‬
‫‪49w‬‬
‫‪48m‬‬
‫‪1‬‬
‫‪71m‬‬
‫پس‌اس‌گزفتي‌ٍرٍدی‌ًمطِ‌سبختِ‌ضذُ‪‌،‬ضزٍع‌ثِ‌اجزای‌آى‌هیوٌین‪‌.‬ثبیذ‌پس‌اس‌ّز‌‪‌ 10‬هزحلِ‌اجزای‌ًمطِ‪‌،‬یه‌‬
‫‌‬
‫ًوًَِ‌اس‌هحلّ‌حیَاًبت‌را‌در‌وٌسَل‌چبح‌وٌیذ‪‌.‬پس‌اس‌ٍرٍد‌اطّالػبت‌ثالفبغلِ‪‌،‬لجل‌اس‌ّزگًَِ‌حزوتی‪ً‌،‬مطِ‌را‌‬
‫چبح‌وٌیذ‌ٍ‌تؼذاد‌حزوت‌ثزای‌چبح‌ًمطِ‌را‌اس‌پس‌اس‌آى‌ضوبرش‌ًوبییذ‪‌.‬ثیي‌ّز‌دٍ‌ًمطِی‌چبح‌ضذُ‌یه‌خط‌‬
‫‌‬
‫خبلی‌ثگذاریذ‪‌ .‬‬
‫ی‌چبح‌ثذیي‌غَرت‌است‌وِ‌ّز‌سطز‌را‌در‌یه‌خط‌اس‌وٌسَل‌ًوبیص‌دّیذ‪‌.‬در‌خبًِّبی‌خبلی‌وبروتز‌”*“‌‬
‫‌‬
‫‌ ‌‬
‫ًحَُ‬
‫در‌خبًِّبی‌پز‌ًوبد‌حیَاى‌را‌لزار‌دّیذ‪‌.‬تؼذاد‌حیَاى ‌ٍ‌جٌسیت ‌در‌ّز‌خبًِ‌هْن‌ًیست ٍ‌ًیبسی‌ثِ‌چبح‌آى‌‬
‫‌‬
‫ٍ‌‬
‫ًذاریذ‪‌.‬خزٍجی‌سیز‌یه‌خزٍجی‌هجبس‌است‪‌ :‬‬
‫**********‬
‫********‪*L‬‬
‫**********‬
‫******‪***E‬‬
‫‪*****E**DD‬‬
‫***‪******F‬‬
‫**********‬
‫********‪*R‬‬
‫**********‬
‫**********‬
‫اگز‌در‌ًمط ِ‌فمط‌یه‌ًَع‌حیَاى‌ثبلی‌ثوبًذ‪‌،‬ثزًبهِ‌پبیبى‌یبفتِ‌است‪‌.‬در‌ایي‌ضزایط‌در‌یه‌خط‌اثتذا‌ًوبد‌حیَاى‌ٍ‌‬
‫سپس ‌تؼذاد ‌آى ‌را ‌چبح ‌وٌیذ‪‌ .‬در ‌غَرتی ‌وِ ‌پس ‌اس ‌‪‌ 1000‬حزوت ‌ّیچ ‌حیَاًی ‌ثزًذُ‌ی ‌هیذاى ‌ًطذ‪‌ ،‬ػجبرت‌‬
‫”‪‌“There is no Winner‬را‌در‌خزٍجی‌چبح‌وٌیذ‪(‌.‬یؼٌی‌در‌حزوت‌ ‪1000‬ام‌اثتذا‌ًمطِ‪‌،‬ثِ‌خبطز‌هضزة‌‪‌10‬‬
‫ای‌ًیست‪‌،‬ػجبرت‌فَق‌ثِ‌ًوبیص‌در‌هیآیذ‪).‬‬
‫‌‬
‫‌‬
‫ضَد‌ٍ‌پس‌اس‌آى‌اگز‌ثزًذُ‬
‫‌‬
‫!‌چبح‌هی‬
‫ثَدى‌‪‌1000‬‬
‫هَفك‌ثبضیذ‬