پروژه سری دوم درس برنامه نویسی شیءگرا موعدارسال1390/10/5 : محمد اصغری پروژه سری دوم درس برنامه نویسی شیءگرا موعد ارسال0931/10/5: نکات کلی ثشای اسسبل ثِ آدسس صیش هشاجؼِ کٌیذ: http://arsh.co.ir/java901/ هَػذ اسسبل سبػت 95:37تبسیخ1571/10/5ثَدُ ٍ ثِ ّیچ ػٌَاى توذیذ ًخَاّذ ضذ. تأخیش تب 1سبػت ،ثِ اصای ّش 5دقیقِ هَجت کسش ضذى ً "1وشُ ،اص 1سبػت تب 92سبػت هَجت کسش ضذى ً "91وشُ ،اص 92سبػت تب 93سبػت ،ثِ اصای ّش 9دقیقِ هَجت کسش ضذى ً "1وشُی دیگش ٍ ثیي 93سبػت تب 26سبػت ثبػث کسش ضذى ً "31وشُ هیضَد .تأخیش ثیطتش اص 26سبػت قبثل قجَل ًیست. قغغ ثَدى ایٌتشًت خَاثگبُ ،کٌذی پبیگبُ ایٌتشًتی داًطکذُ ،توبم ضذى کبست ایٌتشًت ٍ … ّیچکذام دلیل هَجْی ثشای تأخیش ًیستٌذ .ثٌبثشایي پیطٌْبد هیضَد جَاةّبی خَد سا دس دانشکدهاسسبل کٌیذ. سَاالت خَد سا ثب فشستبدى ایویل ثِ آدسس [email protected]یب دس گشٍُ دسس هغشح کٌیذ. ً حَُی تحَیل حضَسی پشٍطُ ثؼذا ثِ اعالع ضوب خَاّذ سسیذ. دقت کٌیذ کِ ثبیذ ثتَاًیذ دس صهبى تحَیل ّش تغییشی دس کذّب اػوبل کٌیذ. پشٍطُ سشی دٍم دسس ثشًبهِ ًَیسی ضیءگشا 1 مقدمه دس فبص دٍم پشٍطُ هی خَاّین یک هحیظ گ شافیکی ثشای ثبصی ثٌَیسین ،هحیظ ضجیِ سبصی تػَیشی ّوبى ثبصی هی ثبضذ. الجتِ چٌذ تلِ ٍ قذست جذیذ ّن ثِ دالیلی اضبفِ ضذُ استّ .وچٌیي ثب هذیشیت خغبّب آضٌب خَاّیذ ضذ ٍ ػالٍُ ثش ایٌْب یک هحیظ رخیشُ ٍ ثبصیبثی گشافیکی ًقطِ ً #map editor$یض ثِ پشٍطُ اضبفِ خَاّیذ کشد .دس اداهِ ثِ عَس هفػل دسثبسُ ی ایي هَاسد تَضیح دادُ خَاّذ ضذ. ویرایش گر نقشه دس ایي فبص ثبصی ّب سٍی ًقطِ ّبیی اًجبم هی ضًَذ کِ قجال رخیشُ ضذُ اًذ ٍ ًقطِ دیگش اص ٍسٍدی ًوی آیذ .ثٌبثش ایي ضوب ثبیذ یک ٍیشایص گش ًقطِ ثٌَیسیذ .سبختبس فبیل ّب کبهال اختیبسی است ٍ ّش گًَِ کِ خَدتبى هی خَاّیذ هی تَاًیذ آًْب سا ًگْذاسی کٌیذ .ایي ٍیشایص گش ثبیذ ثِ غَست کبهال گشافیکی ثبضذ ٍ اهکبًبت صیش سا داضتِ ثبضذ: اهکبى خَاًذى یک ًقطِ اص سٍی ّبسد دیسک #load$ اهکبى رخیشُ ًقطِ #save$ اهکبى تؼییي اثؼبد ًقطِ ٍ اضبفِ کشدى تلِ ٍ قذست ثِ ًقطِ اهکبى undoثِ تؼذاد ًبهحذٍد دس ٌّگبم ٍیشایص ًقطِ اهکبى سّب کشدى تغییشات ٍ سبخت ًقطِ جذیذ #new$ محیط بازی کبسثش ثبیذ ثتَاًذ اص هحیظ ثبصی یک ًقطِ سا کِ قجال رخیشُ کشدُ است اًتخبة ٍ ثبصی سا ضشٍع کٌذ .ثبصی هبًٌذ فبص یک است ٍ ضوب ثبیذ اهکبى تبس اًذاختي ثِ ثبصیکي ّب ثذّیذ ٍ دس غَستی کِ قذستی ثِ دست آٍسدًذ ثِ آًْب حق اًتخبة یک پشٍطُ سشی دٍم دسس ثشًبهِ ًَیسی ضیءگشا 9 ثبصیکي سا دادُ تب قذست سا سٍی آًْب اػوبل کٌذ .جضییبت ثبصی ثِ اختیبس ضوب هی ثبضذ ٍلی ثبیذ ّوِ ی ػولکشدّبی هَسد اًتظبس دس ثبصی سا فشاّن کٌیذ ،ثشای اهکبًبت اضبفِ ٍ صیجبیی کبس ٍ ً ...یض ًوشُ ای دس ًظش گشفتِ ضذُ است کِ هی تَاًیذ دس قسوت ًوشُ دّی ثجیٌیذ. انواع تله ها ،قدرت ها و بازیکن ها ثشای جزاة تش ضذى ثبصی چٌذ ًَع تلِ ،قذست ٍ ثبصیکي جذیذ اضبفِ ضذُ است. اًَاع تلِ ّب ثِ ضشح صیشًذ: تلِ هشگ کِ دس فبص یک تَضیح دادُ ضذ. تلِ کٌذ کِ دس فبص یک تَضیح دادُ ضذ. تلِ غیش فؼبل سبصی کِ دس فبص قجل تَضیح دادُ ضذ. تلِ فشستبدى ثِ جبی تػبدفی :اگش کسی ٍاسد ایي تلِ ضَد ثِ یکی اص خبًِ ّبی قجلی ثِ غَست تػبدفی فشستبدُ هی ضَد ،دقت کٌیذ کِ اگش خبًِ هقػذ تلِ یب قذست ثبضذ یب ثبصیکٌی دیگش ثبیذ ثشای ّش کذام کبسی هٌبست اًجبم ضَد تلِ هؼکَس کٌٌذُ :اگش کسی ٍاسد ایي تلِ ضَد ،ثشای دٍ دٍس هسیش حشکتص ثشػکس هی ضَد ،یؼٌی اگش تبسی ثیٌذاصد کِ اٍ سا 5خبًِ ثِ جلَ ثجشد ،ثبیذ 5خبًِ ػقت ثشدُ ضَد. اًَاع قذست ّب: قذست فشستبدى ثِ ػقت کِ دس فبص یک تَضیح دادُ ضذ. قذست فشستبدى ثِ ًضدیک تشیي تلِ کِ دس فبص یک تَضیح دادُ ضذ. قذست سشػت ،ثب گشفتي ایي قذست ثبصیکي دس دٍ دٍس ثؼذ دٍ ثشاثش پشش هی کٌذ ،یؼٌی ثِ جبی 2خبًِ 4خبًِ جلَ هی سٍد. اًَاع ثبصیکي ّب: ثبصیکي هْبجن :ایي ثبصیکي ّش ثبس کِ تبس هیٌذاصد 55دسغذ احتوبل داسد دٍ ثبس ثپشد ،یؼٌی اًگبس دٍ ثبس پطت ّن تبس اًذاختِ! ثبصیکي هذافغ :ایي ثبصیکي ثِ احتوبل 55دسغذ ٍقتی ٍاسد تلِ ضَد ،تلِ سا اص ثیي هی ثشد ٍ اتفبقی ثشایص ًوی افتذ ،اگش ّن ثبصیکٌی ٍاسد خبًِ ی اٍ ضَد ،ثبص ثِ احتوبل 55دسغذ اٍ ثبصیکي سا خَاّذ کطت! ثبصیکي هشدُ خَس:دی :ایي ثبصیکي ثؼذ اص ّش حشکت 25دسغذ ضبًس داسد تب جبی خَد سا ثب یک ثبصیکي دیگش دس صهیي ػَؼ کٌذ ،اٍ اگش ثخَاّذ هی تَاًذ اص ایي فشغت استفبدُ ًکٌذ. ًَع ثبصیکي سا ّش ًفش دس اٍل ثبصی هطخع هی کٌذ مدیریت خطاها ضوب ثبیذ اص سیستن خغبی جبٍا #catch ،try ،throw$ثشای هذیشیت خغبّبی خَد استفبدُ کٌیذ :خغبّبیی کِ پشتبة ٍ گشفتِ ضًَذ ضبهل هَاسد صیش هی ثبضٌذ: پشٍطُ سشی دٍم دسس ثشًبهِ ًَیسی ضیءگشا ثبصیکي هؼوَلی کِ دس پشٍطُ اٍل ًیض ٍجَد داضت 5 ثبصیکٌی خبسج صهیي ثبضذ :ایي خغب هشثَط ثِ ٍقتی است کِ کسی ثبصیکٌی سا اًتخبة کٌذ کِ ثیشٍى اص صهیي است ،هثال ثشای استفبدُ اص قذست! ثبصیکٌی ًتَاًذ ػقت ثشٍدٍ :قتی کِ کسی سا آًقذس ثِ ػقت ثفشستین کِ اص غفحِ خبسج ضَد ،دس ایي غَست فشد ثِ ػقت ًوی سٍد ٍ خغبیی ایجبد هی ضَد ثبصیکٌی اص جلَی ًقطِ ثیشٍى ثیفتذ ،هثال دس خبًِ ی یکی هبًذُ ثِ آخش ثبضذ ٍ 5ثیبٍسد ،دس ایي ٌّگبم ًیض ثبیذ خغبی هٌبسجی پشتبة ضَد. ػذم ٍجَد ًضدیک تشیي تلٍِ :قتی ًضدیک تشیي تلِ ای ٍجَد ًذاضتِ ثبضذ ایي خغبّبیی ثَد کِ ثِ رّي هي سسیذ ٍ اججبسی ّستٌذ ،یبفتي ثقیِ ی اًَاع خغبّبی ثبصی ثِ ػْذُ خَدتبى ٍ اختیبسی است .دقت کٌیذ کِ ثشًبهِ ی ضوب دس الیِ ی ًوبیص ثبیذ ثِ ًحَُ ی هٌبسجی ایي خغبّب سا ًوبیص دّذ. مکانیسم تاس انداختن ثِ خبعش هطکالتی کِ هثل ّویطِ ثشای تحَیل حضَسی ٍ تست ثشًبهِ ّبیتبى ٍجَد داسد ،گشافیک ضوب ثبیذ دٍ هکبًیضم ثشای تبس اًذاختي داضتِ ثبضذ ،یکی هکبًیضم تػبدفی کِ فشد ثتَاًذ ثب آى تبس ثیٌذاصد ،دٍهی اهکبى ایٌکِ کبسثش ػذد تبس سا خَدش ٍاسد کٌذ ٍ اًگبس آى ػذد ٍاقؼب ػذد تبس است ،ایي اهکبى غشفب ثشای تحَیل حضَسی ٍ تست هی ثبضذ. نکات پیاده سازی ثِ دلیل اّویتی کِ ًحَُ ی ًگشش دسست ثِ هسئلِ ٍ عشاحی هٌبست داسد ثخص خَثی اص ًوشُ ثِ ایي ثخص تؼلق هی گیشد ٍ ّویي دلیل ًکبتی دس اداهِ گفتِ خَاّذ ضذ کِ حتوب ثبیذ ثِ آًْب تَجِ کٌیذ. اٍال دس ایي پشٍطُ اًتظبس هی سٍد ضوب کبهال اص هفبّین ٍ polymorphism ،inheritance ... ٍ encapsulationاستفبدُ کٌیذ. پشٍطُ سشی دٍم دسس ثشًبهِ ًَیسی ضیءگشا 2 ضوب ثبیذ یک کالس پبیِ ثشای ثبصیکي ّب داضتِ ثبضیذ کِ خَاظ هطتشک ثبصیکي ّب دس آى ثبضذ ٍ ّش ًَ 2ع ثبصیکي فشصًذ آى ثَدُ ٍ تب حذ اهکبى فقظ تفبٍت ّبی آًْب دس کذّبیطبى ثبضذ ٍ کذ تکشاسی ٍ صایذی ثیي آًْب هطتشک ًجبضذ .اهکبى ًوًَِ گیشی اص ایي کالس پبیِ ٍجَد ًذاسد. ً کتِ ی ثبال ثشای تلِ ّب ٍ قذست ّب ّن ثشقشاس است. خغبّبی ضوب ّش کذام ثبیذ یک کالس ٍ ّوِ ثبیذ فشصًذ یک خغبی پبیِ ثبضٌذ هثال GameExceptionکِ خغبّبی ثبصی سا اص اًَاع خغبّبی دیگش دس جبٍا هتوبیض هی کٌذ ٍ ّوِ ی ّ catchبی ضوب کِ ثِ قػذ گشفتي GameExceptionیب فشصًذاى آى ثبضٌذ .اص گزاضتي ) catch(Exception eدس کذ اکیذا خَدداسی کٌیذ. عشاحی کالس ّبی هَسد ًیبص ثشای گشافیک ٍ هٌغق ٍ هذیشیت ثبصی ٍ تبس ٍ ...ثِ ػْذُ ی خَدتبى هی ثبضذ، ضوب ثبیذ ثتَاًیذ عشاحی خَد سا تَجیح کٌیذ ٍ دلیل هٌغقی ثشای آى داضتِ ثبضیذ .پس قجل اص ضشٍع ثِ کذ صدى ثِ عَس کبهل دس هَسد تقسین ثٌذی کالس ّب ٍ سٍاثظ آًْب تفکش کٌیذ. اص صدى کذ کثیف ،تکشاسی ٍ تبثغ ّبی عَالًی ٍ جوغ کشدى کذ دس یک کالس یب تبثغ خبظ ٍ هَاسد هطبثِ خَدداسی کٌیذ. اص packageثٌذی هٌبست ثشای هذیشیت ٍ دستِ ثٌذی فبیلْبی javaی خَد استفبدُ کٌیذ ٍ ّوِ سا دس یک packageجوغ ًکٌیذ. ثِ ػٌَاى یک ًکتِ ی ثسیبس هْن ثبیذ تَجِ کٌیذ کِ دس کالس ّبی هٌغق ٍ هذیشیت ثبصی ،غفحِ ی ثبصی ٍ گشافیک ٍ ...فقظ ثِ کالس ّبی ٍ GameExceptionکالس ّبی پبیِ ی ثبصیکي ،تلِ ٍ قذست دستشسی داسیذ ٍ ثِ ثچِ ّبی آًْب دستشسی ًذاسیذ ٍ ًجبیذ دس کذ ایي کالس ّب اثشی اص ثچِ ّب دیذُ ضَد .اص خػَغیت ّبی خَة ایي ًحَُ ی ًَضتي آى است کِ افضٍدى ثبصیکي ،قذست ،خغب ٍ تلِ ی جذیذ ساحت خَاّذ ثَد ٍ ثِ جض ًَضتي کذ ّوبى کالس جذیذً ،یبصی ثِ تغییش دس هٌغق ثشًبهِ ًذاسد .ثشای اًجبم ایي کبس ثِ ػٌَاى پیطٌْبد هی تَاًیذ اص کالس صیش استفبدُ کٌیذ: کالسی ثِ ػٌَاى ResourceManagerثبیذ داضتِ ثبضیذ کِ کبس آى ثجت لیست ثبصیکي ّب ،تلِ ّب ٍ قذست ّب هی ثبضذ .هثال ایي کالس ثبیذ تَاثؼی هطبثِ صیش داضتِ ثبضذ: تبثغ ّبی هَسد ًیبص سا ثشای آى تلِ پیبدُ سبصی کشدُ دس غَست ًیبص BaseTrapسا کوی تغییش دّین ٍ دس پشٍطُ سشی دٍم دسس ثشًبهِ ًَیسی ضیءگشا {)Public static BaseTrap getTrapByType(int type )If (type == 0 ;)(Return new DeathTrap )Else if(type == 1 ;)(Return new SlowTrap )Else if(type == 2 ;)(Return new DisableTrap )Else if(type == 3 ;)(Return new RandomBackwardTrap )Else if(type == 4 ;)(Return new ReverseTrap ;Return null } };Public static int getTrapTypeCount(){ return 5 حبل اگش هب ثخَاّین ًَع جذیذی تلِ ثِ سیستن اضبفِ کٌین ،فقظ ثبیذ یک کالس جذیذ ثشای آى تلِ ثسبصین ٍ 3 ًْبیت ثبیذ دٍ تبثغ ثبال سا ثِ سٍص کٌین ٍ ثشًبهِ ی هب پس اص آى ثذٍى ًیبص ثِ تغییش دیگشی دسست کبس کٌذ .هثال هی خَاّیذ دس هحیظ ٍیشایص ًقطِ ثِ اصای ّش ًَع تلِ یک دکوِ ثگزاسین کِ ثب صدى آى ثتَاًذ آى ًَع تلِ سا ثِ ًقطِ اضبفِ کٌذ ،آًگبُ ثبیذ کذی هطبثِ صیش داضتِ ثبضیذ: ;)(Int trapCount = ResourceManager.getTrapTypeCount {)For (int I = 0; I < trapCount; I++ ;)(JButton btn = new JButton ;)BaseTrap trap = ResourceManager.getTrapByType(I ;))(Btn.setImage(trap.getIconImage …. } ّوبًغَس کِ هی ثیٌیذ ایي کذ دس غَست دسست ثَدى ResourceManagerثؼذ اص اضبفِ ضذى تلِ ی جذیذ ثذٍى ًیبص ثِ تغییش دسست کبس خَاّذ کشد. پشٍطُ سشی دٍم دسس ثشًبهِ ًَیسی ضیءگشا 4 نحوه نمره دهی صیجبیی گشافیکً 13 :وشُ $دقت کٌیذ کِ ایي ًوشُ کبهال سلیقِ ای هی ثبضذ ٍ ثشای ثِ دست آٍسدى آى ،گشافیک ضوب ثبیذ دس ًگبُ اٍل تبثیش هثجتی ثش ثیٌٌذُ ثگزاسد ،ثٌبثش ایي ًوی تَاًیذ ادػبیی دس هَسد ایي ًوشُ داضتِ ثبضیذ ،چَى کبهال کیفی است# کبسکشد دسست ٍ کبهلً 53 :وشُ ثبصیکي ّب ،تلِ ّب ،قذست ّب ّش کذام ً 13وشُ ٍ یشایص گش ًقطِ ً 13وشُ ثقیِ هَاسد ً 13وشُ عشاحی دسست کالس ّب ٍ ضیئ گشاییً 41 :وشُ عشاحی کالس ّبی ثبصیکي ،تلِ ،قذست ٍ خغبّب ّش کذام ً 11وشُ عشاحی ثقیِ ی سیستن ثِ غَست گفتِ ضذُ ً 91وشُ دقت کٌیذ کِ ً 31وشُ اضبفِ هی ثبضذ. هَفق ٍ پیشٍص ثبضیذ هحوذ اغغشی پشٍطُ سشی دٍم دسس ثشًبهِ ًَیسی ضیءگشا 5
© Copyright 2025 Paperzz