Project1.pdf

‫پروژه سری اول‬
‫درس برنامه نویسی شیءگرا‬
‫موعد ارسال‪0991/2/9 :‬‬
‫علیرضا مظلومی‬
‫تا زـىش اص ػاحل ؿشیفی همذم ‪ -‬هْؼا لشتاًی ‪ -‬ؿادی ػثذاللْیاى‬
‫پروژه سری اول درس برنامه نویسی شیءگرا‬
‫موعد ارسال‪9/2/1390 :‬‬
‫نکات کلی‬
‫‪ ‬تشای اسػال تِ آدسع صیش هشاجؼِ وٌیذ‪:‬‬
‫‪http://ce.sharif.edu/~shaikhha/java901‬‬
‫دلر وٌیذ وِ تایذ فایل ّای خَد سا داخل یه فایل ‪ zip‬تِ ًام ‪ STDID( STDID.zip‬ؿواسُ داًـجَییساى‬
‫هی تاؿذ‪ ).‬لشاس دّیذ (هثل ‪ ٍ )87123456.zip‬فایل ‪ zip‬سا اسػال وٌیذ‪( .‬دلر وٌیذ وِ تذٍى ایٌىِ داخل‬
‫ّیچ ؿاخِ ای لشاس دّیذ‪ ،‬فایل ّای خَد سا ‪ zip‬وٌیذ‪ ).‬دلر وٌیذ وِ فایل اسػالی ؿوا تایذ حاٍی یه فایل‬
‫‪ Main.java‬تاؿذ وِ دسٍى ّیچ ؿاخِای ًیؼر ٍ ‪ main‬اجشایی تشًاهِ دس آى اػر‪ّ .‬وچٌیي الصم اػر دس‬
‫ایي خشٍطُ ؿوا هیاى وذّایساى هؼسٌذ ػاصی سا تِ ووه جاٍادان اًجام دّیذ (ٌّگام اسػال فایل ّای ‪ html‬سا‬
‫زَلیذ ًىٌیذ)‪ .‬دس ایي هؼسٌذاذ ؿوا تایذ تشای ّش والع ٍ ّویٌؽَس تشای ّش وذام اص زاتغ ّای والع ایي‬
‫زَظیحاذ سا تٌَیؼیذ تِ ؼَسی وِ تا صدى دػسَس جاٍادان فایل ّای ‪ html‬ای وِ تِ دػر هی آیٌذ تِ ؼَس‬
‫واهل تیاًگش چگًَگی واسوشد تشًاهِ تاؿٌذ‪ .‬دلر وٌیذ وِ فایل ‪ ٍ pdf‬فایل ‪ Main.java‬تایذ داخل ّیچ خَؿِ‬
‫ای لشاس ًگیشًذ‪.‬‬
‫‪ ‬هَػذ اسػال ػاػر ‪ 32:59‬سٍص ‪ 9/2/1390‬تَدُ ٍ تِ ّیچ ػٌَاى زوذیذ ًخَاّذ ؿذ‪.‬‬
‫‪ ‬زأخیش زا ‪ 1‬ػاػر‪ ،‬تِ اصای ّش ‪ 2‬دلیمِ هَجة وؼش ؿذى ‪ً %1‬وشُ‪ ،‬اص ‪ 1‬ػاػر زا ‪ 32‬ػاػر هَجة وؼش ؿذى‬
‫‪ً %32‬وشُ‪ ،‬اص ‪ 32‬ػاػر زا ‪ 35‬ػاػر‪ ،‬تِ اصای ّش ‪ 3‬دلیمِ هَجة وؼش ؿذى ‪ً %1‬وشُی دیگش ٍ تیي ‪ 35‬ػاػر‬
‫زا ‪ 28‬ػاػر تاػث وؼش ؿذى ‪ً %52‬وشُ هی ؿَد‪ .‬زأخیش تیـسش اص ‪ 28‬ػاػر لاتل لثَل ًیؼر‪.‬‬
‫هَجْی تشای زأخیش ًیؼسٌذ‪ .‬تٌاتشایي خیـٌْاد هیؿَد جَابّای خَد سا دس دانشکده اسػال وٌیذ‪.‬‬
‫‪ ‬ػَاالذ خَد سا تا فشػسادى ایویل تِ آدسع ‪ [email protected]‬هؽشح وٌیذ‪.‬‬
‫‪ ‬دس صَسذ اػسفادُ اص ّشگًَِ هٌثؼی‪ ،‬تایذ آى هٌثغ دس خَد هىاى اػسفادُ (تِ صَسذ واهٌر) آٍسدُ ؿَد‪ .‬دلر‬
‫وٌیذ وِ حسی دس صَسزی وِ ایي هٌثغ سا اص یىی اص دٍػساًساى گشفسِ ایذ‪ ،‬اػن فشد تایذ روش ؿَد‪.‬‬
‫‪ً ‬حَُ ی زحَیل حعَسی خشٍطُ تؼذا تِ اؼالع ؿوا خَاّذ سػیذ‪.‬‬
‫‪ ‬دلر وٌیذ وِ تایذ تسَاًیذ دس صهاى زحَیل ّش زغییشی دس وذّا اػوال وٌیذ‪.‬‬
‫خشٍطُ ػشی اٍل دسع تشًاهِ ًَیؼی ؿیءگشا‬
‫‪ ‬لؽغ تَدى ایٌسشًر خَاتگاُ‪ ،‬وٌذی خایگاُ ایٌسشًسی داًـىذُ‪ ،‬زوام ؿذى واسذ ایٌسشًر ٍ … ّیچوذام دلیل‬
‫‪1‬‬
‫مقدمه‬
‫ؿوا دس ایي خشٍطُ تایذ همذهاذ ًگاسؽ تاصی ‪ CE Tanks‬سا وِ لشاس اػر دس خشٍطُ ّای تؼذ زىویل وٌیذ فشاّن وٌیذ‪.‬‬
‫ؿوا دس ایي فاص تایذ یه ‪ map editor‬سا خیادُ ػاصی وٌیذ‪ّ .‬ویٌؽَس دس ایي هشحلِ تایذ زَاًایی اًجام تاصی دس حذ‬
‫اتسذایی سا دس ‪ console‬تِ واستش تذّیذ‪ .‬تاصی تِ ایي صَسذ اػر وِ زؼذادی زاًه دس ًمـِ ٍجَد داسًذ ٍ ّش زاًىی‬
‫زالؽ هیىٌذ وِ زاًه ّای دیگش سا تا ؿلیه گلَلِ هٌْذم وٌذ‪ً .‬مـِ ی ؿوا اص زؼذادی ‪ block‬زـىیل ؿذُ اػر ٍ ّش‬
‫وذام خاصیر خَد سا داسًذ‪.‬‬
‫تاصی تِ ایي صَسذ اػر وِ ّش زاًىی یه جْسی داسد ٍ هیسَاًذ تِ ػور ساػر ٍ یا چح خَد تچشخذ‪ّ .‬ویٌؽَس دس‬
‫جْسی وِ لشاس داسد تِ ػور جلَ ٍ یا ػمة حشور وٌیذ‪ .‬واس دیگشی وِ یه زاًه هیسَاًذ اًجام دّذ ایي اػر وِ‬
‫گلَلِای سا ؿلیه وٌذ وِ تا ای ي واس یه گلَلِ دس خاًِ ی جلَی زاًه لشاس هیگیشد ٍ جْر حشور آى هـخص هیـَد ٍ‬
‫اص آى تِ تؼذ دس ّش حشور یه خاًِ تِ جلَ هیشٍد‪.‬‬
‫‪‬‬
‫زَجِ وٌیذ وِ دس ایي فاص والع ّای خشٍطُ ای وِ تایذ تٌَیؼیذ تِ صَسذ خیـٌْادی دس صَسذ خشٍطُ ٍجَد‬
‫داسد‪ .‬هیسَاًیذ اص آى ّا اػسفادُ وٌیذ ٍ وذ خَد سا ػاخر یافسِ وٌیذ‪ .‬زَجِ وٌیذ وِ دس فاص ّای تؼذی چگًَگی‬
‫والع تٌذی ٍ ایي وِ دس ّش والع چِ تایذ ٍجَد داؿسِ تاؿذ تِ ؿوا گفسِ ًخَاّذ ؿذ خغ تِ چگًَگی‬
‫والع تٌذی دس ایي فاص دلر وٌیذ چَى وِ تایذ چگًَگی والع تٌذی سا یاد تگیشیذ ٍ دس فاص ّای تؼذی ایي واس‬
‫سا اًجام دّیذ‪.‬‬
‫قسمتهای اصلی‬
‫دس ایي خشٍطُ ؿوا تایذ چٌذ والع سا خیادُ ػاصی وٌیذ وِ دس صیش تِ زَظیح آًْا خشداخسین‪:‬‬
‫والع ‪ : Tank‬ایي والع تشای ًگْذاسی ّش تاصیىي ٍ هـخصاذ هشتَغ تِ آى اػر‪.‬‬
‫خشٍطُ ػشی اٍل دسع تشًاهِ ًَیؼی ؿیءگشا‬
‫‪3‬‬
‫هسذ ّایی وِ دس ایي والع ٍجَد داسًذ دس صیش آهذُ اػر ‪:‬‬
‫;)‪public Tank(int number,String name‬‬
‫;)(‪public char getDirection‬‬
‫;)‪public void setDirection(char dir‬‬
‫;)(‪public String toString‬‬
‫;)(‪public String getName‬‬
‫;)(‪public int getNumber‬‬
‫;)(‪public void setCol‬‬
‫;)(‪public void setRow‬‬
‫;)(‪public int getCol‬‬
‫;)(‪public int getRow‬‬
‫زاتغ اٍل ػاصًذُ ی والع ‪ Tank‬اػر ٍ ؿواسُ ٍ ًام تاصیىي سا هیگیشد‪.‬‬
‫زاتغ دٍم هـخصاذ تاصیىي سا چاج هیىٌذ وِ هثال اگش تاصیىي ؿواسُ ‪ ٍ 3‬تِ ًام ‪ ٍ Alireza‬دس ػؽش ‪ ٍ 2‬ػسَى ‪ٍ 3‬‬
‫جْر آى تِ ػور تاال تَد حاصل تِ ایي صَسذ اػر‪:‬‬
‫‪Tank No 2 Alireza at (3,2) u‬‬
‫زاتغ ّای دیگش تِ ػٌَاى ‪ّ getter ٍ setter‬ؼسٌذ‪.‬‬
‫جْر ّای هوىي ‪ّ u,l,d,r :‬ؼسٌذ وِ تِ زشزیة ًـاًذٌّذُ ی تاال‪ ،‬چح‪ ،‬خاییي ٍ ساػر هیثاؿٌذ‪.‬‬
‫والع ‪ : Bullet‬ایي والع ًـاى دٌّذُ ی یه گلَلِ اػر‪ .‬زاتغ ّایی وِ تایذ ٍجَد داؿسِ تاؿٌذ‪:‬‬
‫;)(‪public String toString‬‬
‫;)(‪public Tank getTank‬‬
‫;)(‪public int getRow‬‬
‫;)(‪public int getCol‬‬
‫;)(‪public void setRow‬‬
‫;)(‪public void getDirection‬‬
‫وِ زاتغ اٍل هـخصاذ گلَلِ سا چاج هیىٌذ‪ .‬وِ هثال اگش گلَلِ اص جاًة زاًه ؿواسُ ‪ 3‬ؿلیه ؿذُ تاؿذ ٍ دس ػؽش ‪ٍ 2‬‬
‫ػسَى ‪ ٍ 3‬دس جْر چح تاؿذ تِ ایي صَسذ اػر‪:‬‬
‫‪Bullet at (3,2) form Tank no 2‬‬
‫زاتغ دٍم ّن زاًىی وِ ایي گلَلِ سا ؿلیه وشدُ تش هیگشداًذ‪.‬‬
‫زاتغ ّای تؼذی ‪ّ setter ٍ getter‬ای هشتَغ تِ گلَلِ اػر‪.‬‬
‫خشٍطُ ػشی اٍل دسع تشًاهِ ًَیؼی ؿیءگشا‬
‫;)(‪public void setCol‬‬
‫‪2‬‬
‫والع ‪ : Block‬ایي والع تِ صَسذ ‪ abstract‬اػر ٍ دس ٍالغ خذس ّوِ ی ‪ّ block‬ای هَجَد دس ًمـِ اػر‪.‬‬
‫هسذ ّایی وِ دس ایي والع ٍجَد داسًذ‪:‬‬
‫;)(‪public abstract String toString‬‬
‫;)(‪public int getRow‬‬
‫;)(‪public int getCol‬‬
‫;)(‪public void setRow‬‬
‫;)(‪public void setCol‬‬
‫;)(‪public abstract getCharacter‬‬
‫وِ زاتغ اٍل هـخصاذ ‪ block‬سا چاج هیىٌذ‪ .‬هثال اگش تشای ‪ Wall‬صذا صدُ ؿَد وِ دس ػؽش ‪ ٍ 2‬ػسَى ‪ 3‬تاؿذ حاصل‬
‫تِ ؿىل صیش اػر‪:‬‬
‫)‪Wall at (3,2‬‬
‫چْاس زاتغ تؼذی ‪ setter ٍ getter‬تشای ػؽش ٍ ػسَى ّؼسٌذ‪ .‬زَجِ وٌیذ وِ ایي زاتغ ّا ‪ً abstract‬یؼسٌذ (تِ ایي‬
‫خاؼش وِ ایي ٍیظگی دس ّوِ ی ‪ّ block‬ا هـسشن اػر خغ آى سا دس والع خذس لشاس هیذّین)‬
‫زاتغ آخش ًیض واساوسش هشتَغ تِ والع سا تش هیگشداًذ‪ .‬وِ ایي واساوسش حشف اٍل ًام ّش ‪ block‬اػر‪.‬‬
‫حال تِ تیاى ‪ّ block‬ای هَجَد دس ًمـِ ٍ ٍیظگی ّای آًْا هیدشداصین‪ّ( :‬ش وذام اص ایي ّا یه والع ّؼسٌذ وِ فشصًذ‬
‫والع ‪ّ Block‬ؼسٌذ‪).‬‬
‫خشٍطُ ػشی اٍل دسع تشًاهِ ًَیؼی ؿیءگشا‬
‫‪2‬‬
‫‪-‬‬
‫‪ : Ground‬ایي تلَن صهیي ػادی اػر ٍ خاصیر خاصی ًذاسد‪.‬‬
‫‪-‬‬
‫‪ : Wall‬ایي تلَن دیَاس اػر ٍ ًِ گلَلِ ٍ ًِ زاًه حك ٍسٍد تِ آى سا ًذاسًذ‪ .‬دس صَسذ اصاتر گلَلِ تِ ایي‬
‫‪ block‬گلَلِ اص تیي هیشٍد‪.‬‬
‫ ‪ : Box‬ایي تلَن یه جؼثِ اػر ٍ ّیچ زاًىی حك ٍسٍد تِ آى سا ًذاسد ‪ .‬دس صَسذ اصاتر گلَلِ‪ ،‬گلَلِ اص تیي‬‫هیشٍد ٍ تلَن ‪ Box‬زثذیل تِ تلَن ‪ Ground‬خَاّذ ؿذ‪.‬‬
‫ ‪ : Ice‬ایي تلَن صفحِ ی یخی اػر‪ .‬دس صَسزی وِ زاًىی ٍاسد آى ؿَد دس جا ػش هیخَسد ٍ اص ؼشف دیگش‬‫خاسج هیـَد‪( .‬زَجِ وٌیذ وِ اگش دس ؼشف دیگش یخ دیَاس یا جؼثِ تَد ٍ یا ایي وِ اًسْای ًمـِ تَد‪ ،‬دس صَسذ‬
‫ٍسٍد ّش زاًه زاًه سٍی ایي خاًِ هی ایؼسذ‪ ).‬دس صَسزی وِ گلَلِ ای ٍاسد ؿَد تشخَسد ایي تلَن تا گلَلِ‬
‫هاًٌذ تشخَسد صهیي ػادی اػر‪.‬‬
‫‪-‬‬
‫‪ : Trap‬ایي خاًِ زلِ هیثاؿذ‪ .‬دس صَسزی وِ زاًىی ٍاسد آى ؿَد خَاّذ تاخر ٍ زلِ زثذیل تِ ‪Ground‬‬
‫هیـَد‪ .‬دس صَسذ اصاتر گلَلِ تِ ایي تلَن‪ ،‬تلَن زثذیل تِ ‪ Ground‬هیـَد‪.‬‬
‫‪-‬‬
‫‪ : Random‬ایي تلَن خاًِ ی سًذم اػر‪ .‬تِ ایي صَسذ وِ زا صهاًی وِ دس هحیػ ٍیشایؾ ًمـِ ّؼسین ایي‬
‫‪ block‬یه تلَن ‪ Random‬اػر ٍ تِ هحط ایي وِ تاصی خَاػر ؿشٍ ع ؿَد تایذ زثذیل تِ یىی اص‬
‫تلَنّای تاال ؿَد‪.‬‬
‫والع ‪ : Map‬ایي والع تشای ًگْذاسی ًمـِ اػر‪ .‬زاتغ ّایی وِ تایذ دس ایي والع ٍجَد داؿسِ تاؿٌذ‪:‬‬
‫;)‪public Map(int col,int row‬‬
‫;)‪public void edit(int col, int row, Block block‬‬
‫;)(‪public String toString‬‬
‫;)(‪public int getRows‬‬
‫;)(‪public int getRows‬‬
‫زاتغ اٍل ػاصًذُ ی ایي والع اػر ٍ ًمـِ ای تِ زؼذاد ػؽش ٍ ػسَى ّای دادُ ؿذُ هیؼاصد‪ .‬دس لحظِ ی ػاخسي ّوِی‬
‫تلَن ّا تِ صَسذ دیفالر تِ تلَن ‪ Ground‬زثذیل هیـًَذ‪.‬‬
‫زاتغ دٍم یه خاًِ اص ًمـِ سا ٍیشایؾ هیىٌذ ٍ آى سا تِ تلَن خاع دادُ ؿذُ ‪ set‬هیىٌذ‪.‬‬
‫زاتغ ػَم ًمـِ سا چاج هیىٌذ؛ تِ ایي صَسذ وِ تِ اصای ّش خاًِ حاصل ‪ getCharacter‬سا چاج هیىٌذ ٍ تیي‬
‫خاًِّای ّش سدیف یه ‪ tab‬صدُ هیـَد )‪ ٍ (\t‬دس اًسْای خػ ّن یه ‪ \r\n‬تایذ گزاؿسِ ؿَد‪ .‬تِ ػٌَاى هثال چٌیي‬
‫سؿسِ ای تشگشداًذُ هیـَد‪( :‬سؿسِ ی صیش تشای ًمـِ ای وِ داسای ‪ 2‬ػسَى ٍ ‪ 3‬سدیف اػر هیثاؿذ)‬
‫‪W\tG\tG\tT\r\nW\tB\tR\tI\r\n‬‬
‫تشًاهِ ی ؿوا تِ جض هحیػ ٍیشایؾ هحیػ تاصی ّن داسد‪.‬‬
‫والع ‪ : Game‬ایي والع ًگْذاسًذُ ی ٍظؼیر تاصی اػر‪ .‬زاتغ ّایی وِ دس آى ٍجَد داسًذ ‪:‬‬
‫;)‪public Game(Tank[] tanks, Map map‬‬
‫;)(‪public Tank getTank‬‬
‫;)‪public boolean move(char move‬‬
‫خشٍطُ ػشی اٍل دسع تشًاهِ ًَیؼی ؿیءگشا‬
‫دٍ زاتغ آخش ًیض ‪ getter‬زؼذاد ػؽش ٍ ػسَى ّا ّؼسٌذ‪.‬‬
‫‪5‬‬
‫;)(‪public Map getMap‬‬
‫زاتغ اٍل ػاصًذُ ی ایي والع اػر ٍ زاًه ّا ٍ ًمـِ سا تِ ػٌَاى ٍسٍدی هیگیشد‪.‬‬
‫زاتغ دٍم زاًىی وِ دس حال حاظش ًَتر حشور اٍ اػر سا تشهیگشداًذ‪.‬‬
‫زاتغ ػَم دػسَس گفسِ ؿذُ سا تشای زاًىی وِ اوٌَى ًَتر آى اػر اًجام خَاّذ داد‪ .‬دػسَس ّا تِ ایي صَسذ ّؼسٌذ ‪:‬‬
‫‪-‬‬
‫‪ u‬تشای حشور تِ ػور جلَ‬
‫‪-‬‬
‫‪ l‬تشای چشخیذى تِ ػور چح‬
‫‪-‬‬
‫‪ r‬تشای چشخیذى تِ ػور ساػر‬
‫‪-‬‬
‫‪ d‬تشای حشور تِ ػمة‬
‫ ‪ f‬تشای ؿلیه گلَلِ‬‫دس حیي اجشای ایي حشور دٍ حالر هحسول اػر وِ آیا حشور هَفمیر آهیض تَد یا خیش وِ تا ‪ true‬یا ‪ false‬هـخص‬
‫هیـَد‪.‬‬
‫زاتغ چْاسم ّن وِ ًمـِ سا تشهیگشداًذ‪.‬‬
‫تاصی دس ایي فاص تِ صَسذ ًَتسی اجشا هیـَد تِ ایي صَسذ وِ دس ّش ًَتر ّش تاصیىي حك یه حشور سا داسد ٍ ٌّگاهی‬
‫وِ آى حشور سا اًجام داد چِ هَفمیر آ هیض تَد ٍ چِ ًثَد ًَتر اص اٍ گشفسِ هیـَد ٍ تِ تاصیىي تؼذی دادُ خَاّذ ؿذ‪.‬‬
‫دس اتسذای تاصی جْ ر ّوِ ی زاًه ّا تِ صَسذ خیـفشض تِ ػور تاال اػر ٍ زؼذاد تاصیىي ّا حذاوثش ‪ 2‬اػر‪.‬‬
‫ٌّگاهی وِ دػسَسی دادُ هیـَد ّوِ ی گلَلِ ّا ًیض یه خاًِ تِ ػور جلَ حشور خَاٌّذ وشد‪.‬‬
‫خشٍطُ ػشی اٍل دسع تشًاهِ ًَیؼی ؿیءگشا‬
‫‪6‬‬
‫زَجِ وٌیذ وِ ٍیظگی ّایی وِ تشای تلَن ّا گفسِ ؿذ سا خیادُ ػاصی وٌیذ‪ .‬ػالٍُ تش ایي لاًَى ّا‪ ،‬دٍ لاًَى دیگش ٍجَد‬
‫داسًذ وِ یىی تیاى هیىٌذ وِ ّیچ زاًىی حك خشٍج اص ًمـِ سا ًذاسد ٍ دیگش ایي وِ ّش زاًىی فمػ یه گلَلِ ی فؼال دس‬
‫ًمـِ هیسَاًذ داؿسِ تاؿذ‪ .‬خغ دس صَسزی و ِ گلَلِ ای اص زاًىی وِ ًَتر آى تَد ٍجَد داؿر ٍ دػسَس ؿلیه دادُ ؿذ‬
‫ایي زاًه زَاًایی ؿلیه ًخَاّذ داؿر‪.‬‬
‫اگش زاًىی تِ گلَلِ اصاتر وٌذ‪ ،‬گلَلِ اص تیي هیشٍد ٍ آى زاًه خَاّذ تاخر‪.‬‬
‫زاًىی تشًذُ ی تاصی اػر وِ صًذُ تالی تواًذ ٍ تمیِ ی زاًه ّا هٌْذم ؿًَذ‪.‬‬
‫نحوه ی اجرای برنامه‬
‫زَجِ وٌیذ وِ ایي خشٍطُ تا زصحیح خَدواس چه خَاّذ ؿذ‪ .‬تِ ایي صَسذ وِ تشًاهِ ی ؿوا زحر وٌؼَل تایذ تسَاًذ‬
‫اجشا ؿَد‪.‬‬
‫تِ ایي هٌظَس تایذ والع ‪ Main‬ای داؿسِ تاؿیذ وِ دس ‪ default package‬تاؿذ ٍ داسای زاتغ ‪ main‬تاؿذ‪.‬‬
‫تشًاهِ داسای دٍ هحیػ ػاخسِ ؿذُ اػر وِ یىی هحیػ ‪ edit‬وشدى ًمـِ ٍ دیگشی هحیػ اجشای تاصی اػر‪.‬‬
‫تشًاهِ تِ ایي صَسذ اجشا هیـَد وِ دس خػ اٍل زؼذاد ػؽش ّا‪ ،‬دس خػ دٍم زؼذاد ػسَى ّا ٍ دس خػ ػَم زؼذاد‬
‫تاصیىيّا ٍاسد هیـَد‪ ٍ .‬ػدغ تالفاصلِ تاصی تایذ ٍاسد هحیػ ادیر ؿَد‪.‬‬
‫دس ّش وذام اص هحیػ ّا دػسَسازی ٍجَد داسًذ وِ دس صیش آهذُ اػر‪:‬‬
‫دػسَساذ هحیػ ٍیشایؾ ًمـِ‪:‬‬
‫‪edit #row #col character‬‬
‫وِ ‪ً block‬مؽِ ی دادُ ؿذُ سا تِ ‪ Block‬ای وِ تا حشف دادُ ؿذُ ؿشٍع هیـَد ػَض هیىٌذ‪ .‬هثال‪:‬‬
‫‪edit 3 4 W‬‬
‫دػسَس ‪: print‬‬
‫‪print‬‬
‫وِ حاصل ‪ً toString‬مـِ سا خشیٌر هیىٌذ ( زَجِ وٌیذوِ اص زاتغ ‪ print‬اػسفادُ وٌیذ ٍ ًِ ‪) println‬‬
‫دػسَس ‪: setStart‬‬
‫‪setStart #row #col #number‬‬
‫‪setStart 3 4 2‬‬
‫وِ هىاى ؿشٍع زاًه ؿواسُ ی ‪ 3‬سا تشاتش ػؽش ‪ ٍ 2‬ػسَى ‪ 2‬لشاس هیذّذ‪.‬‬
‫دػسَس ‪: Game‬‬
‫‪Game name_1 name_2 name_3 ….‬‬
‫خشٍطُ ػشی اٍل دسع تشًاهِ ًَیؼی ؿیءگشا‬
‫وِ ًمؽِ ی ؿشٍع زاًه تِ ؿواسُ دادُ ؿذُ سا زؼییي هیىٌذ‪ .‬هثال‪:‬‬
‫‪7‬‬
‫وِ تا ایي دػسَس ًام ّش وذام اص تاصیىي ّا دادُ هیـَد ٍ تشًاهِ تا ایي دػسَس ٍاسد هحیػ تاصی هیـَد‪ .‬تا ایي واس ًَتر‬
‫زاًه ؿواسُ ‪ 1‬اػر زا حشور وٌذ‪.‬‬
‫‪ ‬دس زؼر ّا ّوَاسُ ّوِ ی تاصیىي ّا ‪ setStart‬هیـًَذ‪.‬‬
‫‪ّ ‬وَاسُ ‪ّ setStart‬ا سٍی خاًِ ی ‪ Ground‬دادُ هیـًَذ‪.‬‬
‫دػسَساذ هحیػ تاصی‪:‬‬
‫دػسَس ‪: move‬‬
‫‪move character‬‬
‫وِ تا ایي دػسَس دػسَس هساًظش تا ‪ character‬تایذ تشای زاًىی وِ ًَتر آى اػر اجشا ؿَد‪ .‬وِ دػسَس ّا ّواى ‪ 5‬زایی‬
‫ّؼسٌذ وِ دس تاال گفسِ ؿذ‪ .‬دس ٌّگام اجشای ایي دػسَس ازفالازی هوىي اػر ازفاق تیَفسذ وِ تایذ تا سؿسِ ای هٌاػة‬
‫ًوایؾ دادُ ؿَد‪:‬‬
‫ازفالاذ هوىي‪:‬‬
‫‪ ‬ػذم زَاًایی اجشای دػسَس ‪:‬‬
‫‪ o‬دس صَسزی وِ دػسَس حشور وشدى دادُ ؿذُ تَد فمػ دس صَسزی وِ زاًىی وِ تایذ حشور وٌذ دس‬
‫اًسْای حشور دس ّواى جای اٍل تالی هاًذ خػ صیش چاج هیـَد‪:‬‬
‫‪No Move.‬‬
‫‪ o‬دس صَسزی وِ دػسَس ؿلیه تَد ٍ زَاًایی ؿلیه ٍجَد ًذاؿر خػ صیش چاج هیـَد‪:‬‬
‫‪No Fire.‬‬
‫‪‬‬
‫خشٍطُ ػشی اٍل دسع تشًاهِ ًَیؼی ؿیءگشا‬
‫‪8‬‬
‫تاخسي تاصیىي‪ :‬وِ تایذ سؿسِ ای تِ ایي صَسذ چاج ؿَد‪:‬‬
‫‪Tank (tank name) loses.‬‬
‫وِ تِ جای خشاًسض تایذ ًام تاصیىي چاج ؿَد‪ .‬هثال‪:‬‬
‫‪Tank Alireza loses.‬‬
‫‪ ‬تشد تاصیىي‪ :‬وِ تایذ سؿسِ ای تِ ایي صَسذ چاج ؿَد‪:‬‬
‫‪Tank (tank name) wins.‬‬
‫وِ تِ جای خشاًسض تایذ ًام تاصیىي لشاس تگیشد‪ .‬هثال‪:‬‬
‫‪Tank Alireza wins.‬‬
‫‪ ‬زَجِ داؿسِ تاؿیذ وِ تا صدى دػسَس ‪ move‬زشزیة ٍلَع ازفالاذ تذیي زشزیة اػر‪:‬‬
‫‪ .1‬حشور گفسِ ؿذُ دس صَسذ اهىاى اجشا هیـَد‪.‬‬
‫‪ .3‬گلَلِ ّا ّش یه تِ اًذاصُ ی یه خاًِ تِ جلَ حشور هیىٌٌذ‪.‬‬
‫‪‬‬
‫زشزیة دس ایي هشحلِ هْن ًیؼر‪( .‬زؼسی تِ تشًاهِ ؿوا دادُ ًویـَد وِ زشزیة ایي وِ وذام‬
‫گلَلِ اٍل حشور وٌذ هْن تاؿذ)‬
‫خشٍطُ ػشی اٍل دسع تشًاهِ ًَیؼی ؿیءگشا‬
‫‪9‬‬