hw4.pdf

‫ﺑﻪ ﻧﺎم دوﺳﺖ‬
‫ﺑﺮﻧﺎﻣﻪ ﻧﻮﻳﺴﯽ ﭘﻴﺸﺮﻓﺘﻪ‬
‫ﻧﻴﻢ ﺳﺎل دوم ‪٨۴-٨٣‬‬
‫ﺕﻤﺮﻳﻦ ﭼﻬﺎرم‬
‫اﺵﮑﺎﻻت و ﺳﻮاﻻت ﺧﻮد را ﺑﻪ ‪ Mailing list‬درس ﺑﻔﺮﺳﺘﻴﺪ‪.‬‬
‫‪[email protected]‬‬
‫ﺑﺮای هﺮ ﻳﮏ از ﻣﺴﺎﺋﻞ زﻳﺮ ﻳﮏ ﺑﺮﻧﺎﻣﻪ ﺟﺎوا ﺑﻨﻮﻳﺴﻴﺪ‪ ،‬ﮐﻪ اﺱﻢ ﮐﻼس اﺻﻠﯽ ﮐﻪ ﺣﺎوی ﻣﺘﺪ )‪main(String [] args‬‬
‫ﻣﯽ ﺑﺎﺷﺪ ﺑﺎﻳﺪ ﺑﺎ اﺱﻢ ﮐﻼس اﺻﻠﯽ ﮐﻪ در ﺻﻮرت ﻣﺴﺌﻠﻪ دادﻩ ﺷﺪﻩ اﺱﺖ‪ .‬در ﻏﻴﺮ اﻳﻦ ﺻﻮرت ﻣﻤﮑﻦ اﺱﺖ ﺕﺼﺤﻴﺢ‬
‫ﺕﻤﺮﻳﻦ ﺷﻤﺎ دﭼﺎر ﻣﺸﮑﻞ ﺷﻮد‪) .‬ﺑﻪ ﺑﺰرﮔﯽ و ﮐﻮﭼﮑﯽ ﺣﺮوف ﺕﻮﺟﻪ ﮐﻨﻴﺪ(‪.‬‬
‫ﺑﺮای ﺕﺤﻮﻳﻞ ﺕﻤﺮﻳﻦ ﺧﻮد ﻓﻘﻂ ﻓﺎﻳﻞ هﺎی ‪ *.java‬ﺕﻤﺮﻳﻦ ﺧﻮد را )ﺑﺪون ﻓﺎﻳﻠﻬﺎی ‪ *.class‬و ‪ file‬ﻳﺎ داﻳﺮﮐﺘﻮری‬
‫اﺿﺎﻓﯽ( ‪ zip‬ﮐﺮدﻩ ]از ﻓﺮﻣﺖ ‪ rar‬اﺳﺘﻔﺎدﻩ ﻧﮑﻨﻴﺪ[‪ ،‬ﮐﻪ ﻧﺎم ﺁن ﺑﻪ ﺻﻮرت زﻳﺮ ﻣﻴﺒﺎﺵﺪ‪:‬‬
‫ﺑﻌﺪ از ”‪ “HW-4‬ﺵﻤﺎرﻩ داﻧﺸﺠﻮﻳﯽ ﺧﻮد را وارد ﮐﺮدﻩ )ﺑﺪون اﻳﻨﮑﻪ از ﮐﺎراﮐﺘﺮ ﻓﺎﺻﻠﻪ ﺧﺎﻝﯽ اﺳﺘﻔﺎدﻩ ﮐﻨﻴﺪ(‪ .‬ﺑﻪ‬
‫ﻋﻨﻮان ﻣﺜﺎل ‪ ] HW4-83182239.zip :‬از ﻓﺮﻣﺖ ‪ *.rar‬ﻣﺎﻧﻨﺪ ‪ HW4-83182239.rar‬اﺱﺘﻔﺎدﻩ ﻧﮑﻨﻴﺪ[ و ﺱﭙﺲ‬
‫ﺁن را ﺕﻮﺱﻂ ﻳﮏ ‪ email‬ﺑﺎ ﻣﺸﺨﺼﺎت زﻳﺮ ﺑﻪ ﺁدرس ﻣﺬﮐﻮر ارﺱﺎل ﮐﻨﻴﺪ‪.‬‬
‫‪[email protected]‬‬
‫‪HW4-83182239‬‬
‫‪HW4-83182239.zip‬‬
‫‪Recipient:‬‬
‫‪Subject:‬‬
‫‪Body:‬‬
‫‪Attachments:‬‬
‫ﻓﻴﻠﺪ ‪ Subject‬ﻧﺎﻣﻪ‪ ،‬درﺱﺖ ﻣﺎﻧﻨﺪ اﺱﻢ ‪ zip‬ﻓﺎﻳﻞ ‪ attach‬ﺷﺪﻩ ﻣﻴﺒﺎﺷﺪ‪ .‬ﺑﺪﻳﻦ ﺻﻮرت ﮐﻪ ﺑﻌﺪ از ”‪ “HW4-‬ﺷﻤﺎرﻩ‬
‫داﻧﺸﭽﻮﻳﯽ ﺧﻮد را وارد ﮐﺮدﻩ )ﺑﺪون اﻳﻨﮑﻪ از ﮐﺎراﮐﺘﺮ ﻓﺎﺻﻠﻪ ﺧﺎﻝﯽ اﺱﺘﻔﺎدﻩ ﮐﻨﻴﺪ(‪.‬‬
‫ﻧﮑﺎﺕﯽ ﮐﻪ در ارﺳﺎل ﺕﻤﺮﻳﻦ ﺑﺎﻳﺪ ﺣﺘﻤﺎ رﻋﺎﻳﺖ ﺵﻮﻧﺪ‪:‬‬
‫‪ .١‬ﺕﻤﺮﻳﻦ هﺎ ﺣﺘﻤﺎ ﺑﺎﻳﺪ ﺑﻪ ﺻﻮرت ﮔﻔﺘﻪ ﺷﺪﻩ ارﺱﺎل ﮔﺮدﻧﺪ‪ .‬در ﻏﻴﺮ اﻳﻦ ﺻﻮرت ﺕﺼﺤﻴﺢ ﻧﺨﻮاهﻨﺪ ﮔﺸﺖ‪ ،‬و‬
‫ﻧﻤﺮﻩ ﺁن را از دﺱﺖ ﻣﻴﺪهﻨﺪ‪.‬‬
‫‪ .٢‬ﺕﻮﺟﻪ ﮐﻨﻴﺪ ﮐﻪ ﺑﺪﻧﻪ ‪ mail‬ﺷﻤﺎ ﺧﻮاﻧﺪﻩ ﻧﻤﻴﺸﻮد‪ ،‬ﻝﺬا اﮔﺮ ﻗﺼﺪ ﺑﻴﺎن ﻣﻄﻠﺒﯽ را دارﻳﺪ‪ ،‬ﻧﺎﻣﻪ ای ﺟﺪاﮔﺎﻧﻪ ای‬
‫ارﺱﺎل ﮐﻨﻴﺪ ﮐﻪ ‪ subject‬ﺁن ﻣﺘﻔﺎوت ﺑﺎﺷﺪ‪.‬‬
‫‪ .٣‬ﺕﻮﺝﻪ ﻣﻬﻢ‪ :‬در ﺻﻮرﺕﯽ ﮐﻪ ﮐﺴﯽ ﺕﻤﺮﻳﻦ ﺧﻮد را ﺑﻪ ﺝﺎی ﺁدرس‪ mail‬درس ﺑﻪ ﺁدرس ‪mailing list‬‬
‫درس ارﺳﺎل ﮐﻨﺪ‪ .‬ﻧﻤﺮﻩ ﺁن ﺕﻤﺮﻳﻦ را از دﺳﺖ ﻣﯽ دهﺪ‪ .‬و در ﺻﻮرت ﺕﮑﺮار ﻧﻤﺮﻩ ﻣﻨﻔﯽ ﺧﻮاهﺪ ﮔﺮﻓﺖ‪.‬‬
‫ﻣﻬﻠﺖ ارﺳﺎل ﺕﻤﺮﻳﻦ ﺳﺮی ﭼﻬﺎرم‪ ،‬ﺕﺎ ﺳﺎﻋﺖ ‪ ١٣:٣٠‬ﻇﻬﺮ روز ﭼﻬﺎرﺵﻨﺒﻪ‪ ٨۴/٢/١۴‬ﻣﯽ ﺑﺎﺵﺪ‪.‬‬
‫از ﺕﻤﺮﻳﻦ هﺎﻳﯽ ﮐﻪ ﺑﻌﺪ از اﻳﻦ ﺕﺎرﻳﺦ و ﺱﺎﻋﺖ ﻓﺮﺱﺘﺎدﻩ ﺷﻮﻧﺪ‪ ،‬ﺕﺼﺤﻴﺢ ﻧﺨﻮاهﻨﺪ ﺷﺪ‪.‬‬
‫ﻣﺴﺌﻠﻪ ﻳﮏ ‪ :‬ﺑﺎزی )‪TicTacToe (X-O‬‬
‫ﻧﺎم ﮐﻼس اﺻﻠﯽ ﺑﺮﻧﺎﻣﻪ ‪TicTacToe.java :‬‬
‫در اﻳﻦ ﺑﺮﻧﺎﻣﻪ ﺷﻤﺎ ﺑﺎزی ‪) TicTacToe‬ﺑﺎزی ‪ (X-O‬را ﺑﺎ اپﻠﺖ پﻴﺎدﻩ ﺱﺎزی ﻣﯽ ﮐﻨﻴﺪ‪ .‬اﻳﻦ ﺑﺎزی ﺑﺎﻳﺪ ﻃﻮری‬
‫پﻴﺎدﻩ ﺱﺎزی ﺷﻮد ﮐﻪ هﻢ ﺑﺘﻮان ﺁن را ﺑﻪ ﺻﻮرت دو ﻧﻔﺮﻩ و هﻢ ﺑﺎ ﮐﺎﻣﭙﻴﻮﺕﺮ ﺑﺎزی ﮐﺮد)ﺑﺎزﻳﮕﺮ ﮐﺎﻣﭙﻴﻮﺕﺮ ﺑﺎﻳﺪ ﺕﺎ‬
‫ﺣﺪی هﻮﺷﻤﻨﺪ ﺑﺎﺷﺪ(‪ .‬هﺮ ﮔﺎﻩ ﮐﻪ هﺮ ﻳﮏ از ﻃﺮﻓﻴﻦ ﺑﺎزی را ﺑﺮد‪ ،‬ﺑﺎزی ﻣﺘﻮﻗﻒ ﺷﺪﻩ و ﻣﺤﻞ ﺑﺮد ﺑﺎزﻳﮕﺮ ﺑﺮﻧﺪﻩ‬
‫ﻣﺸﺨﺺ ﻣﻴﺸﻮد )ﻣﺎﻧﻨﺪ ﻧﻤﻮﻧﻪ زﻳﺮ و ﻳﺎ ﺑﻪ ﺷﻴﻮﻩ هﺎی دﻝﺨﻮاﻩ دﻳﮕﺮ(‪ .‬اﻣﺘﻴﺎزات ﻃﺮﻓﻴﻦ هﻤﻮارﻩ ﺑﺎﻳﺪ ﻧﻤﺎﻳﺶ دادﻩ‬
‫ﺷﻮﻧﺪ‪ .‬هﻤﭽﻨﻴﻦ هﻤﻮارﻩ ﺑﺎﻳﺪ ﻧﺸﺎن دادﻩ ﺷﻮد ﮐﻪ ﻧﻮﺑﺖ اﻧﺠﺎم ﺣﺮﮐﺖ ﮐﺪام ﺑﺎزﻳﮑﻦ اﺱﺖ )ﺑﺎزﻳﮑﻦ ‪ X‬و ﻳﺎ ﺑﺎزﻳﮑﻦ‬
‫‪ .(O‬ﮔﺬاﺷﺘﻦ ﻋﻼﻣﺖ هﺎ ﺕﻮﺱﻂ ﮐﻠﻴﮏ ‪ mouse‬ﺑﺮ روی هﺮ ﻳﮏ ا ز ‪ ٩‬ﺧﺎﻧﻪ ﺑﺎزی و ﻓﻘﻂ در ﻣﺤﺪودﻩ هﻤﺎن ‪٩‬‬
‫ﺧﺎﻧﻪ اﻣﮑﺎن پﺬﻳﺮ اﺱﺖ‪ .‬پﺲ از ﺑﺮد ﻳﮏ ﻃﺮف و ﻳﺎ ﻣﺴﺎوی ﺷﺪن ﺁﻧﻬﺎ ﺑﺎ ﮐﻠﻴﮏ ‪ mouse‬ﺑﺮ روی ﺻﻔﺤﻪ اپﻠﺖ‬
‫ﺑﺎزی دوﺑﺎرﻩ اداﻣﻪ ﻣﯽ ﻳﺎﺑﺪ و ﺻﻔﺤﻪ اپﻠﺖ ﺑﺮای ﺑﺎزی ﺟﺪﻳﺪ پﺎک ﻣﯽ ﺷﻮد‪ .‬در اﻳﻦ ﺣﺎﻝﺖ ﺷﺮوع ﮐﻨﻨﺪﻩ ﺑﺎزی‬
‫ﮐﺴﯽ اﺱﺖ ﮐﻪ در ﺑﺎزی ﻗﺒﻞ ﺑﺮدﻩ اﺱﺖ و ﻳﺎ اﮔﺮ در ﺑﺎزی ﻗﺒﻞ دو ﺑﺎزﻳﮑﻦ ﻣﺴﺎوی ﮐﺮدﻩ ﺑﺎﺷﻨﺪ‪ ،‬ﻧﻮﺑﺖ ﺑﺎ ﻧﻔﺮ‬
‫ﻣﻘﺎﺑﻞ ﮐﺴﯽ اﺱﺖ ﮐﻪ ﺑﺎزی ﻗﺒﻞ را ﺷﺮوع ﮐﺮدﻩ ﺑﻮد‪.‬‬
‫هﻤﭽﻨﻴﻦ ﺻﻔﺤﻪ ﺑﺎزی ﺑﺎﻳﺪ ﺷﺎﻣﻞ دﮐﻤﻪ ای ﺑﺎﺷﺪ ﮐﻪ اﻣﺘﻴﺎزات هﺮ دو ﻃﺮف را ﺻﻔﺮ ﮐﺮدﻩ و ﺑﺎزی را از اﺑﺘﺪا‬
‫ﺷﺮوع ﮐﻨﺪ‪ .‬ﺷﻤﺎ ﻣﯽ ﺕﻮاﻧﻴﺪ ﮐﻪ ﺑﻪ ﺟﺎی ﻋﮑﺲ از ﺣﺮوف ‪ X‬و‪ O‬و رﻧﮕﻬﺎی ﻣﺘﻔﺎوت اﺱﺘﻔﺎدﻩ ﮐﻨﻴﺪ‪.‬‬
‫ﺧﺪاﻳﺎ! ﺁﺱﺎن ﺑﻮدن دﺷﻮار اﺱﺖ‬
‫ﺁﺱﺎﻧﻢ ﮐﻦ‪.‬‬
‫ﺁﻧﯽ ﻧﻴﺴﺘﻢ ﮐﻪ ﺑﺎﻳﺪ‬
‫‪.‬ﺁﻧﻢ ﮐﻦ‬