Assignment3.pdf

‫ﺗﻤﺮﻳﻦ ﺳﺮي ﺳﻮم‬
‫درس ﺑﺮﻧﺎﻣﻪ ﻧﻮﻳﺴﻲ ﺷﻲءﮔﺮا‬
‫ﻣﻮﻋﺪ ارﺳﺎل‪ :‬ﺟﻤﻌﻪ ‪ 18‬آذر ‪1390‬‬
‫ﻋﻠﻴﺮﺿﺎ ﻣﻈﻠﻮﻣﻲ‬
‫ﺗﻤﺮﻳﻦ ﺳﺮي ﺳﻮم ﺑﺮﻧﺎﻣﻪ ﺳﺎزي ﺷﻲءﮔﺮا‬
‫ﻣﻬﻠﺖ ﺗﺤﻮﻳﻞ‪ :‬ﺟﻤﻌﻪ ‪ 18‬آذر ‪1390‬‬
‫ﻧﻜﺎت ﻛﻠﻲ‬
‫• در اﻳﻦ ﺗﻤﺮﻳﻦ ﺷﻤﺎ ﺑﺎﻳﺪ ﻳﻚ ﺑﺮﻧﺎﻣﻪ ي ﮔﺮاﻓﻴﻜﻲ ﻗﺎﺑﻞ اﺟﺮا ﺑﺮاي ﺑﺎزي ﻣﻌﺮوف ‪ Tetris‬ﺑﻨﻮﻳﺴﻴﺪ‪.‬‬
‫• ﺑﺮاي ارﺳﺎل ﺗﻤﺮﻳﻦ ﺑﻪ آدرس زﻳﺮ ﻣﺮاﺟﻌﻪ ﻛﻨﻴﺪ‪:‬‬
‫‪http://arsh.co.ir/java901/‬‬
‫ﺗﻮﺟﻪ ﻛﻨﻴﺪ ﻛﻪ ﺑﺎﻳﺪ ﻫﻤﻪ ي ﻓﺎﻳﻞ ﻫﺎي ﻣﺮﺑﻮط ﺑﻪ ﺗﻤﺮﻳﻦ را در ﻳﻚ ﻓﺎﻳﻞ ‪ zip‬ﺷﺪه ﻗﺮار دﻫﻴﺪ ﺑﻪ ﻧﺤﻮي ﻛﻪ ﻓﺎﻳﻞ‬
‫‪ Main.java‬در ﻗﺴﻤﺖ ‪ root‬ﻗﺮار ﮔﻴﺮد‪ .‬ﺑﺎﻗﻲ ‪ package‬ﺑﻨﺪي ﻫﺎ ﻧﻴﺰ در ﻛﻨﺎر ﻓﺎﻳﻞ ‪ Main.java‬ﻗﺮار‬
‫ﻣﻴﮕﻴﺮﻧﺪ‪.‬‬
‫• ﻣﻮﻋﺪ ﺗﺤﻮﻳﻞ ﺳﺎﻋﺖ ‪ 23:59‬روز ﺟﻤﻌﻪ ‪ 18‬آذر ﺑﻮده و ﺑﻪ ﻫﻴﭻ ﻋﻨﻮان ﺗﻤﺪﻳﺪ ﻧﺨﻮاﻫﺪ ﺷﺪ‪.‬‬
‫• ﺗﺄﺧﻴﺮ ﺗﺎ ‪ 1‬ﺳﺎﻋﺖ‪ ،‬ﺑﻪ ازاي ﻫﺮ ‪ 3‬دﻗﻴﻘﻪ ﻣﻮﺟﺐ ﻛﺴﺮ ﺷﺪن ‪ %1‬ﻧﻤﺮه‪ ،‬از ‪ 1‬ﺳﺎﻋﺖ ﺗﺎ ‪ 24‬ﺳﺎﻋﺖ ﻣﻮﺟﺐ ﻛﺴﺮ ﺷﺪن‬
‫‪ %20‬ﻧﻤﺮه‪ ،‬از ‪ 24‬ﺳﺎﻋﺖ ﺗﺎ ‪ 25‬ﺳﺎﻋﺖ‪ ،‬ﺑﻪ ازاي ﻫﺮ ‪ 2‬دﻗﻴﻘﻪ ﻣﻮﺟﺐ ﻛﺴﺮ ﺷﺪن ‪ %1‬ﻧﻤﺮهي دﻳﮕﺮ و ﺑﻴﻦ ‪ 25‬ﺳﺎﻋﺖ‬
‫ﺗﺎ ‪ 48‬ﺳﺎﻋﺖ ﺑﺎﻋﺚ ﻛﺴﺮ ﺷﺪن ‪ %50‬ﻧﻤﺮه ﻣﻲﺷﻮد‪ .‬ﺗﺄﺧﻴﺮ ﺑﻴﺸﺘﺮ از ‪ 48‬ﺳﺎﻋﺖ ﻗﺎﺑﻞ ﻗﺒﻮل ﻧﻴﺴﺖ‪.‬‬
‫• ﻗﻄﻊ ﺑﻮدن اﻳﻨﺘﺮﻧﺖ ﺧﻮاﺑﮕﺎه‪ ،‬ﻛﻨﺪي ﭘﺎﻳﮕﺎه اﻳﻨﺘﺮﻧﺘﻲ داﻧﺸﻜﺪه‪ ،‬ﺗﻤﺎم ﺷﺪن ﻛﺎرت اﻳﻨﺘﺮﻧﺖ و … ﻫﻴﭻﻛﺪام دﻟﻴﻞ‬
‫ﻣﻮﺟﻬﻲ ﺑﺮاي ﺗﺄﺧﻴﺮ ﻧﻴﺴﺘﻨﺪ‪ .‬ﺑﻨﺎﺑﺮاﻳﻦ ﭘﻴﺸﻨﻬﺎد ﻣﻲﺷﻮد ﺟﻮابﻫﺎي ﺧﻮد را در داﻧﺸﻜﺪه ارﺳﺎل ﻛﻨﻴﺪ‪.‬‬
‫• ﺳﻮاﻻت ﺧﻮد را ﺑﺎ ﻓﺮﺳﺘﺎدن اﻳﻤﻴﻞ ﺑﻪ آدرس ‪ [email protected]‬و ﻳﺎ در ﮔﺮوه درﺳﻲ ﻣﻄﺮح ﻛﻨﻴﺪ‪.‬‬
‫• ﻧﺤﻮه ﺗﺤﻮﻳﻞ ﺣﻀﻮري ﺗﻤﺮﻳﻦ ﻣﺘﻌﺎﻗﺒﺎً اﻋﻼم ﺧﻮاﻫﺪ ﺷﺪ‪.‬‬
‫• اﺳﺘﻔﺎده از ﻛﺪ ﻫﺎي آﻣﺎده ي روي اﻳﻨﺘﺮﻧﺖ ﻣﻤﻨﻮع اﺳﺖ‪ .‬ﻫﻤﻴﻨﻄﻮر روﻧﻮﺷﺖ ﻗﺴﻤﺘﻲ از ﺑﺮﻧﺎﻣﻪ )ﺣﺘﻲ ﺧﻴﻠﻲ‬
‫ﺗﻤﺮﻳﻦ ﺳﺮي اول ﺑﺮﻧﺎﻣﻪ ﺳﺎزي ﺷﻲءﮔﺮا‬
‫ﻛﻮﭼﻚ( از روي ﻫﻢ ﻛﻼﺳﻲ ﻫﺎي ﺧﻮد ﺑﺎﻋﺚ ﮔﺮﻓﺘﻦ ﺗﻘﻠﺐ ﺧﻮاﻫﺪ ﺑﻮد‪.‬‬
‫‪1‬‬
‫ﻣﻘﺪﻣﻪ‬
‫در اﻳﻦ ﺗﻤﺮﻳﻦ‪ ،‬ﺷﻤﺎ ﺑﺎﻳﺪ ﺑﺎزي ‪ Tetris‬را ﺑﻪ ﺻﻮرت ﮔﺮاﻓﻴﻜﻲ ﭘﻴﺎده ﺳﺎزي ﻛﻨﻴﺪ‪ .‬ﺑﺮاي اﻃﻼﻋﺎت ﺑﻴﺸﺘﺮ در زﻣﻴﻨﻪ ي اﻳﻦ‬
‫ﺑﺎزي ﻣﻴﺘﻮاﻧﻴﺪ ﺑﻪ آدرس ‪ http://http://en.wikipedia.org/wiki/Tetris‬ﻣﺮاﺟﻌﻪ ﻓﺮﻣﺎﺋﻴﺪ‪ .‬ﺑﺮﻧﺎﻣﻪ اي ﻛﻪ‬
‫ﻣﻴﻨﻮﻳﺴﻴﺪ ﺑﺎﻳﺪ ﻗﺎﺑﻠﻴﺖ اﺟﺮاي ﺑﺎزي ﺑﺮاي ﻳﻚ ﻧﻔﺮ اﻧﺴﺎن را داﺷﺘﻪ ﺑﺎﺷﺪ‪.‬‬
‫واﺳﻂ ﻛﺎرﺑﺮي‬
‫ﺑﺮاي اﻳﻦ ﺗﻤﺮﻳﻦ ﺷﻤﺎ ﻣﻮﻇﻒ ﻫﺴﺘﻴﺪ ﻛﻪ واﺳﻂ ﻛﺎرﺑﺮي ﺑﻪ ﺻﻮرت ﮔﺮاﻓﻴﻜﻲ ﭘﻴﺎده ﺳﺎزي ﻛﻨﻴﺪ ﻛﻪ در ﺻﻮرت ﮔﺮاﻓﻴﻜﻲ ﻧﺒﻮدن‬
‫اﻳﻦ ﺗﻤﺮﻳﻦ ﻧﻤﺮه اي ﺑﻪ ﺗﻤﺮﻳﻦ ﺷﻤﺎ ﺗﻌﻠﻖ ﻧﻤﻴﮕﻴﺮد‪.‬‬
‫ﻣﺤﻴﻂ ﺑﺮﻧﺎﻣﻪ اي ﻛﻪ ﻣﻴﻨﻮﻳﺴﻴﺪ ﺑﺎﻳﺪ داراي ﻳﻚ ‪ JFrame‬ﻳﺎ ‪ JApplet‬ﺑﺎﺷﺪ ﻛﻪ ﺑﺎزي درون آن اﺟﺮا ﻣﻴﺸﻮد‪.‬‬
‫ﺑﺮﻧﺎﻣﻪ ﺑﺎﻳﺪ داراي ﻳﻚ ﻣﻨﻮي اوﻟﻴﻪ ﺑﺎﺷﺪ ﻛﻪ در آن ﺑﺘﻮان ‪ level‬ﻣﺮﺑﻮط ﺑﻪ ﺑﺎزي را اﻧﺘﺨﺎب ﻛﺮد‪ .‬ﻫﺮ ﭼﻪ ‪ level‬ﺑﺎزي ﺑﺎﻻﺗﺮ‬
‫ﺑﺎﺷﺪ ﺳﺮﻋﺖ ﭘﺎﻳﻴﻦ آﻣﺪن ﻣﻬﺮه ﻫﺎ ﺑﺎﻳﺪ ﺑﻴﺸﺘﺮ ﺷﻮد‪ .‬ﺑﺎ زدن دﻛﻤﻪ ي ‪ Start‬ﺑﺎزي ﺑﺎﻳﺪ آﻏﺎز ﺷﻮد‪ Level .‬ﻫﺎﻳﻲ ﺑﺎزي ﺑﺎﻳﺪ‬
‫ﺑﻴﻦ ‪ 0‬ﺗﺎ ‪ 15‬ﺑﺎﺷﻨﺪ‪.‬‬
‫ﺻﻔﺤﻪ ي ﺑﺎزي ﺑﺎﻳﺪ ‪ level‬ﺑﺎزي‪ ،‬ﻣﻬﺮه ي ﺑﻌﺪي ﻛﻪ ﻗﺮار اﺳﺖ ﺑﻴﺎﻳﺪ )‪ (next‬و اﻣﺘﻴﺎز را ﻧﺸﺎن دﻫﺪ‪ .‬ﺻﻔﺤﻪ ي اﺻﻠﻲ ﺑﺎزي‬
‫داراي ‪ 10‬ﺳﺘﻮن و ‪ 25‬ﺳﻄﺮ اﺳﺖ‪.‬‬
‫ﻣﻬﺮه ﻫﺎﻳﻲ ﻛﻪ در ﺑﺎزي ﺣﻀﻮر دارﻧﺪ ﻣﻮارد زﻳﺮ اﻧﺪ‪) :‬ﺑﻪ رﻧﮓ ﻫﺎ ﺗﻮﺟﻪ ﻛﻨﻴﺪ‪ ،‬ﺑﺎﻳﺪ رﻧﮓ ﻫﺎي ﻣﻬﺮه ﻫﺎ ﻧﻴﺰ ﺑﻪ ﻫﻤﻴﻦ ﺻﻮرت‬
‫ﺑﺎﺷﻨﺪ(‬
‫ﺗﻤﺮﻳﻦ ﺳﺮي اول ﺑﺮﻧﺎﻣﻪ ﺳﺎزي ﺷﻲءﮔﺮا‬
‫‪2‬‬
‫ﻛﻪ ﺑﺎﻳﺪ ﻫﻤﮕﻲ آﻧﻬﺎ ﭘﻴﺎده ﺳﺎزي ﺷﻮﻧﺪ‪ .‬ﺗﻮﺟﻪ ﻛﻨﻴﺪ ﻛﻪ ﻫﺮ ﻛﺪام از اﻳﻨﻬﺎ ‪ 4‬ﺧﺎﻧﻪ را اﺷﻐﺎل ﻣﻴﻜﻨﻨﺪ‪ .‬ﻳﻌﻨﻲ ﺧﺎﻧﻪ ﻫﺎﻳﻲ ﻛﻪ ﭘﻴﺎده‬
‫ﺳﺎزي ﻣﻴﻜﻨﻴﺪ ﻛﻮﭼﻜﺘﺮﻳﻦ واﺣﺪﺷﺎن ﻫﻤﻴﻦ ﺧﺎﻧﻪ ﻫﺎ ﻫﺴﺘﻨﺪ و ﻻزم ﻧﻴﺴﺖ واﺣﺪ ﻛﻮﭼﻜﺘﺮي را ﭘﻴﺎده ﺳﺎزي ﻛﻨﻴﺪ و ﺑﺮاي ﻫﺮ‬
‫ﺑﺎر ﭘﺎﻳﻴﺘﺮ آﻣﺪن ﻣﻬﺮه ﺑﻪ ﻣﻘﺪار ﻫﻤﻴﻦ ﻳﻚ ﺧﺎﻧﻪ ﭘﺎﻳﻴﻦ ﻣﻲ آﻳﺪ‪.‬‬
‫زﻣﺎﻧﻲ ﻛﻪ ﺑﺎ ﭘﺎﻳﻴﻦ آﻣﺪن اﻳﻦ ﻣﻬﺮه دﻳﮕﺮ ﻧﺘﻮاﻧﺪ ﭘﺎﻳﻴﻦ ﺗﺮ ﺑﺮود ﻣﻬﺮه ﻫﻤﺎﻧﺠﺎ ﻗﺮار ﻣﻴﮕﻴﺮد‪.‬‬
‫در ﺻﻮرﺗﻲ ﻛﻪ ﻳﻚ ﺳﻄﺮ ﺑﻪ ﻃﻮر ﻛﺎﻣﻞ ﭘﺮ ﺑﺎﺷﺪ آن ﺳﻄﺮ ﭘﺎك ﻣﻴﺸﻮد و ﺳﻄﺮﻫﺎﻳﻲ روﻳﻲ ﺑﻪ ﺳﻤﺖ ﭘﺎﻳﻴﻦ ﺣﺮﻛﺖ ﻣﻴﻜﻨﻨﺪ‪.‬‬
‫)ﺣﺘﻤﺎ اﻳﻦ ﺑﺎزي را ﺗﺎ ﺑﻪ ﺣﺎل ﻣﺸﺎﻫﺪه ﻛﺮده اﻳﺪ(‬
‫دﻛﻤﻪ ﻫﺎي ﻛﻴﺒﺮد‬
‫در ﻫﻨﮕﺎم ﺑﺎزي ﺑﺎ زدن دﻛﻤﻪ ﻫﺎي ‪ Arrow Key‬ﺑﺎﻳﺪ ﻣﻬﺮه ي در ﺣﺎل ﺳﻘﻮط را ﺑﺘﻮان ﻛﻨﺘﺮل ﻛﺮد ﻛﻪ ﺑﺎ ﭼﭗ و راﺳﺖ ﻛﻪ‬
‫ﺑﻪ ﺳﻤﺖ ﭼﭗ و راﺳﺖ ﺟﺎﺑﺠﺎ ﻣﻴﺸﻮد‪ .‬ﺑﺎ زدن دﻛﻤﻪ ي ﺑﺎﻻ ﻣﻬﺮه ﺑﻪ ﺳﻤﺖ راﺳﺖ ﻣﻴﭽﺮﺧﺪ‪) .‬ﺗﻮﺟﻪ ﻛﻨﻴﺪ ﻛﻪ ﭼﺮﺧﻴﺪن ﺑﺎﻳﺪ‬
‫ﺑﻪ ﺻﻮرﺗﻲ اﻧﺠﺎم ﺷﻮد ﻛﻪ ﭘﺲ از ‪ 4‬ﺑﺎر ﭼﺮﺧﻴﺪن ﻣﻬﺮه ﺑﻪ وﺿﻌﻴﺖ ﻗﺒﻞ ﺷﻮد و ﺟﺎﺑﺠﺎﻳﻲ ﻧﺪاﺷﺘﻪ ﺑﺎﺷﺪ و ﻓﻘﻂ ﺟﺎﺑﺠﺎﻳﻲ ﻫﻨﮕﺎم‬
‫ﭘﺎﻳﻴﻦ آﻣﺪن اﻧﺠﺎم ﻣﻴﺸﻮد(‪ .‬ﺑﺮاي ﻧﻤﻮﻧﻪ ﻣﻴﺘﻮاﻧﻴﺪ از ﺑﺎزي ﻫﺎي ﻣﻮﺟﻮد ﻛﻤﻚ ﺑﮕﻴﺮﻳﺪ ﺗﺎ ﺑﺎ ﻧﺤﻮه ي ﭼﺮﺧﻴﺪن آﺷﻨﺎ ﺷﻮﻳﺪ‪ .‬ﺑﺎ‬
‫زدن دﻛﻤﻪ ي ﭘﺎﻳﻴﻦ ﻣﻬﺮه در ﻫﻤﺎن ﺳﺘﻮﻧﻲ ﻛﻪ ﻗﺮار دارد ﻣﺴﺘﻘﻴﻢ ﭘﺎﻳﻴﻦ ﻣﻲ آﻳﺪ و روي ﺟﺎﻳﻲ ﻛﻪ ﮔﻴﺮ ﻛﻨﺪ ﻣﻴﻨﺸﻴﻨﺪ‪.‬‬
‫)ﻧﻴﺎزي ﺑﻪ ﭘﻴﺎده ﺳﺎزي اﻧﻴﻤﻴﺸﻦ ﻧﻴﺴﺖ(‬
‫ﻣﺤﺎﺳﺒﻪ ي اﻣﺘﻴﺎز‬
‫ﻣﺤﺎﺳﺒﻪ ي اﻣﺘﻴﺎز ﺑﻪ ازاي رج ﻫﺎﻳﻲ ﻛﻪ ﭘﺎك ﻣﻴﺸﻮﻧﺪ از ﻗﺎﻋﺪه ي زﻳﺮ ﺑﻪ دﺳﺖ ﻣﻲ آﻳﺪ و ﺑﻪ اﻣﺘﻴﺎز ﺑﺎزﻳﻜﻦ اﺿﺎﻓﻪ ﻣﻴﺸﻮد‪.‬‬
‫‪Single = (level+1)*40 one line is cleared.‬‬
‫‪Double = (level+1)*100 two lines are simultaneously cleared.‬‬
‫‪Triple = (level+1)*300 three lines are simultaneously cleared.‬‬
‫‪Tetris = (level+1)*1200 four lines are simultaneously cleared.‬‬
‫‪1.‬‬
‫‪2.‬‬
‫‪3.‬‬
‫‪4.‬‬
‫ﺑﻪ ازاي ﻫﺮ ‪ 2000‬اﻣﺘﻴﺎزي ﻛﻪ ﺑﻪ دﺳﺖ ﺑﻴﺎﻳﺪ ﺑﺎﻳﺪ ﻣﺮﺣﻠﻪ را ﻳﻜﻲ اﻓﺰاﻳﺶ دﻫﻴﺪ‪ .‬در ﺻﻮرﺗﻲ ﻛﻪ ﻣﺮﺣﻠﻪ ‪ 15‬ﺑﻮد ﺑﺎﻳﺪ ﻣﺠﺪدا‬
‫ﺑﻪ ﻣﺮﺣﻠﻪ ي ﺻﻔﺮ ﺑﺎزﮔﺮدﻳﺪ‪.‬‬
‫ﻧﺤﻮه ي ﭘﻴﺎده ﺳﺎزي ﻓﺮود ﻣﻬﺮه ﻫﺎ‬
‫ﺑﺮاي اﻳﻦ ﻛﻪ ﻓﺮود ﻣﻬﺮه ﻫﺎ را ﭘﻴﺎده ﺳﺎزي ﻛﻨﻴﺪ ﻣﻴﺘﻮاﻧﻴﺪ ﺑﺮﻧﺎﻣﻪ را درون ﻳﻚ ﺣﻠﻘﻪ ﻗﺮار دﻫﻴﺪ ﻛﻪ ﻫﺮ ﺑﺎر ﻳﻚ ﺗﺎﺑﻊ را ﺻﺪا‬
‫ﺑﺰﻧﺪ ﻛﻪ ﻳﻚ ﺧﺎﻧﻪ ﺑﻪ ﺳﻤﺖ ﭘﺎﻳﻴﻦ ﺣﺮﻛﺖ دﻫﺪ و ﺑﻌﺪ آن ﺑﺮﻧﺎﻣﻪ را ﺑﺮاي ﻣﺪﺗﻲ ﺑﺨﻮاﺑﺎﻧﻴﺪ‪ .‬از دﺳﺘﻮر زﻳﺮ اﺳﺘﻔﺎده ﻛﻨﻴﺪ‪:‬‬
‫;)‪Thread.sleep(int millisecond‬‬
‫ﺑﺨﻮاﺑﺪ‪ .‬ﺑﺮاي ‪ level‬ﺻﻔﺮ در ﻫﺮ ﺑﺎر ﺧﻮاﺑﻴﺪن ﺑﺮﻧﺎﻣﻪ ‪ 1‬ﺛﺎﻧﻴﻪ ﻣﻴﺨﻮاﺑﺪ و ﺑﻪ ازاي ﻫﺮ ﻣﺮﺣﻠﻪ ﭘﻴﺸﺮﻓﺖ‪ ،‬ﺑﺎﻳﺪ ‪ 50‬ﻣﻴﻠﻲ ﺛﺎﻧﻴﻪ‬
‫ﻛﻤﺘﺮ ﺑﺨﻮاﺑﺪ‪.‬‬
‫ﺗﻮﺟﻪ ﻛﻨﻴﺪ ﻛﻪ ‪ Listener‬ﻫﺎﻳﻲ ﻛﻪ روي ﻛﻴﺒﺮد ﻗﺮار ﻣﻴﺪﻫﻴﺪ ﺑﻪ ﺻﻮرت ﺟﺪاﮔﺎﻧﻪ ﻛﺎر ﺧﻮاﻫﻨﺪ ﻛﺮد‪.‬‬
‫ﭘﺲ از ﻓﺮود ﻛﺎﻣﻞ ﻫﺮ ﻣﻬﺮه ﺑﺎﻳﺪ ﻣﻬﺮه اي ﻛﻪ در ﻗﺴﻤﺖ ‪ next‬ﻧﺸﺎن داده ﻣﻴﺸﻮد ﺷﺮوع ﺑﻪ ﭘﺎﻳﻴﻦ آﻣﺪن ﻛﻨﺪ و ﻳﻚ ﻣﻬﺮه ﺑﻪ‬
‫ﺻﻮرت ﺗﺼﺎدﻓﻲ در ﻗﺴﻤﺖ ‪ next‬ﻗﺮار ﮔﻴﺮد‪.‬‬
‫ﺗﻤﺮﻳﻦ ﺳﺮي اول ﺑﺮﻧﺎﻣﻪ ﺳﺎزي ﺷﻲءﮔﺮا‬
‫ﻣﻘﺪار زﻣﺎﻧﻲ ﻛﻪ ﺑﺎﻳﺪ ﺑﺮﻧﺎﻣﻪ ﺑﺨﻮاﺑﺪ از روي ‪ level‬ﺑﺎﻳﺪ ﻣﺤﺎﺳﺒﻪ ﺷﻮد ﻛﻪ ﻫﺮ ﭼﻪ ‪ level‬ﺑﻴﺸﺘﺮ ﺑﺎﺷﺪ ﺑﺎﻳﺪ ﻛﻤﺘﺮ ﺑﺮﻧﺎﻣﻪ‬
‫‪3‬‬
‫ﻧﺤﻮه ي ﻛﻼس ﺑﻨﺪي‬
‫اﻳﻦ ﻧﺤﻮه ي ﻛﻼس ﺑﻨﺪي و ﺗﺎﺑﻊ ﻫﺎ ﭘﻴﺸﻨﻬﺎدي اﻧﺪ‪ .‬ﺷﻤﺎ ﻣﺨﺘﺎرﻳﺪ ﻫﻤﺎﻧﮕﻮﻧﻪ ﻛﻪ ﻋﻼﻗﻪ دارﻳﺪ ﺑﺎزي را ﭘﻴﺎده ﺳﺎزي ﻛﻨﻴﺪ‪.‬‬
‫ﻛﻼس ‪ :Cell‬اﻳﻦ ﻛﻼس ﻳﻜﻲ از ﺧﺎﻧﻪ ﻫﺎي ﺟﺪول اﺳﺖ و ﺳﻄﺮ و ﺳﺘﻮن و رﻧﮓ را در ﺧﻮد ﻧﮕﻪ ﻣﻴﺪارد‪.‬‬
‫ﻛﻼس ‪ :Piece‬اﻳﻦ ﻛﻼس ‪ abstract‬اﺳﺖ و داراي ﺗﺎﺑﻊ ﻫﺎي ‪ rotate‬و ‪ draw‬ﺑﺎﻳﺪ ﺑﺎﺷﺪ‪ .‬ﻛﻪ ‪ draw‬ﺑﺎﻳﺪ ﻣﻬﺮه را در‬
‫ﺟﺎﻳﻲ ﻛﻪ ﻻزم اﺳﺖ رﺳﻢ ﻛﻨﺪ‪ .‬ﭘﺲ در اﻳﻦ ﻛﻼس ﺑﺎﻳﺪ ﻳﻚ ‪ row‬و ‪ col‬ﻧﮕﻬﺪاري ﺷﻮد ﻛﻪ ﻣﻬﺮه ﻧﺴﺒﺖ ﺑﻪ آن ﺑﺘﻮاﻧﺪ ﺧﻮد‬
‫را روي ﺟﺪول رﺳﻢ ﻛﻨﺪ‪.‬‬
‫ﺑﻪ ازاي ﻫﺮ ﻣﻬﺮه ﺑﺎﻳﺪ ﻳﻚ ﻛﻼس ﭘﻴﺎده ﺳﺎزي ﻛﻨﻴﺪ ﻛﻪ ﺑﭽﻪ ي ﻛﻼس ‪ Piece‬ﺑﺎﺷﺪ و ﺗﺎﺑﻊ ﻫﺎ را ﭘﻴﺎده ﺳﺎزي ﻛﻨﺪ‪.‬‬
‫• ﺗﻮﺟﻪ ﻛﻨﻴﺪ ﻛﻪ در ﺻﻮرﺗﻲ ﻛﻪ ﻣﻬﺮه اي ﻓﺮود آﻣﺪ دﻳﮕﺮ وﺟﻮد ﻧﺨﻮاﻫﺪ داﺷﺖ و ﺗﺒﺪﻳﻞ ﺑﻪ ﺗﻌﺪادي ‪ Cell‬ﻛﻪ در‬
‫ﺻﻔﺤﻪ ي ‪ Main‬ﻧﮕﻬﺪاري ﻣﻴﺸﻮد ﺧﻮاﻫﺪ ﺷﺪ‪.‬‬
‫ﻛﻼس ‪ Game‬ﻛﻪ ﻳﻚ ‪ JApplet‬ﻳﺎ ‪ GFrame‬اﺳﺖ ﻛﻪ ﺑﺎﻳﺪ ﺑﺎزي درون آن ﺟﺮﻳﺎن ﻳﺎﺑﺪ‪ .‬ﻛﻪ داراي ﻳﻚ آراﻳﻪ ي دو‬
‫ﺑﻌﺪي از ‪ Cell‬ﻫﺎ ﺑﻪ اﻧﺪازه ي ‪ 10*25‬اﺳﺖ‪ .‬ﻛﺎر ﻫﺎي ﻛﻠﻲ ﺑﺎزي ﻧﻴﺰ در اﻳﻦ ﻛﻼس ﺻﻮرت ﻣﻴﮕﻴﺮد‬
‫ﻧﺤﻮه ي ﻧﻤﺮه دﻫﻲ‬
‫ﭘﻴﺎده ﺳﺎزي ﻣﻬﺮه ﻫﺎ )و رﻧﮕﺒﻨﺪي آﻧﻬﺎ( و ﭼﺮﺧﺶ و ﺟﺎﺑﺠﺎﻳﻲ آﻧﻬﺎ‪ 40 :‬ﻧﻤﺮه‬
‫ﺣﺬف ردﻳﻒ ﻫﺎي ﭘﺮ و اﻣﺘﻴﺎز دﻫﻲ‪ 30 :‬ﻧﻤﺮه‬
‫ﮔﺮاﻓﻴﻚ و ﻣﻨﻮ ﻫﺎي ﺑﺎزي‪ 20 :‬ﻧﻤﺮه‬
‫ﭘﻴﺎده ﺳﺎزي ‪ level‬ﻫﺎي ﺑﺎزي‪ 10 :‬ﻧﻤﺮه‬
‫ﺗﻤﺮﻳﻦ ﺳﺮي اول ﺑﺮﻧﺎﻣﻪ ﺳﺎزي ﺷﻲءﮔﺮا‬
‫‪4‬‬
‫ﻣﻮﻓﻖ ﺑﺎﺷﻴﺪ‪.‬‬