Android俄羅斯方塊課程設(shè)計(jì)報(bào)告_第1頁(yè)
Android俄羅斯方塊課程設(shè)計(jì)報(bào)告_第2頁(yè)
Android俄羅斯方塊課程設(shè)計(jì)報(bào)告_第3頁(yè)
Android俄羅斯方塊課程設(shè)計(jì)報(bào)告_第4頁(yè)
Android俄羅斯方塊課程設(shè)計(jì)報(bào)告_第5頁(yè)
已閱讀5頁(yè),還剩9頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

.....XX城建學(xué)院課程設(shè)計(jì)報(bào)告書專業(yè):計(jì)算機(jī)科學(xué)與技術(shù)課程設(shè)計(jì)名稱:《Java高級(jí)應(yīng)用》題目:俄羅斯方塊____設(shè)計(jì)者:同組人員:指導(dǎo)完成時(shí)間:2016年06月08..目錄一、設(shè)計(jì)目的1二、需求分析22.1游戲功能的需求分析22.2方塊及旋轉(zhuǎn)變換需求分析32.3游戲運(yùn)行需求分析42.4消行和分?jǐn)?shù)統(tǒng)計(jì)需求分析5三、模塊分析及設(shè)計(jì)63.1總體設(shè)計(jì)思想63.2功能模塊6四、制作過(guò)程及要點(diǎn)94.1游戲一個(gè)單元塊的設(shè)計(jì)與實(shí)現(xiàn)94.2俄羅斯方塊的控制設(shè)計(jì)94.3俄羅斯方塊的設(shè)計(jì)與實(shí)現(xiàn)104.4要點(diǎn)分析10五、設(shè)計(jì)總結(jié)12六、參考資料13設(shè)計(jì)目的在個(gè)人電腦日益普及的今天,一些有趣的桌面游戲已經(jīng)成為人們?cè)谑褂糜?jì)算機(jī)進(jìn)行工作或?qū)W習(xí)之余休閑娛樂(lè)的首選,而俄羅斯方塊游戲是人們最熟悉的小游戲之一,它以其趣味性強(qiáng),易上手等諸多特點(diǎn)得到了大眾的認(rèn)可,因此開發(fā)此游戲軟件可滿足人們的一些娛樂(lè)的需求。此俄羅斯方塊游戲可以為用戶提供一個(gè)可在普通個(gè)人電腦上運(yùn)行的,界面美觀的,易于控制的俄羅斯方塊游戲。俄羅斯方塊是家喻戶曉的益智小游戲,它由俄羅斯人阿列克謝帕基特諾夫〔AlexeyPazhitnov在1984年6月利用空暇時(shí)間編寫的游戲程序,故此得名。俄羅斯方塊的基本規(guī)則是移動(dòng)、旋轉(zhuǎn)和擺放游戲隨機(jī)產(chǎn)生的各種方塊,使之排列成完整的一行或多行并且消除得分。它看似簡(jiǎn)單卻變化無(wú)窮,俄羅斯方塊上手極其簡(jiǎn)單,且游戲過(guò)程變化無(wú)窮,作為游戲本身很有魅力,但是要熟練掌握其中的操作和擺放技巧,難度卻不低。此軟件給用戶提供了一個(gè)展現(xiàn)自己高超技藝的場(chǎng)所,在這里,它不僅放松自己,還能感受到游戲中的樂(lè)趣。游戲區(qū)域會(huì)從頂部不斷隨機(jī)落下7種方塊類型的一種,游戲區(qū)域右上角有一個(gè)區(qū)域可以顯示下一個(gè)方塊的形狀,玩家可以控制俄羅斯方塊移動(dòng)、旋轉(zhuǎn)。通過(guò)玩家的操作,下墜物在游戲區(qū)域以"擺積木"的形式出現(xiàn)。下墜物在一行或多行堆滿后就可以自動(dòng)消除,消行后會(huì)得到相應(yīng)的分?jǐn)?shù),如果當(dāng)前下墜物堆積至窗口頂端,則游戲結(jié)束。二、需求分析2.1游戲功能的需求分析先分析一下整個(gè)游戲的具體實(shí)現(xiàn),首先,游戲有開始、幫助、切換界面、結(jié)束游戲等操作接口,而在游戲過(guò)程中,隨著玩家的按鍵,會(huì)出現(xiàn)下墜物的形態(tài)變化、擺放下墜物件、銷毀填滿的行以及分?jǐn)?shù)的增加和等級(jí)速度、產(chǎn)生下一個(gè)方塊、退出等功能。先分析游戲的特點(diǎn),游戲需要產(chǎn)生不同種類的俄羅斯方塊,要對(duì)俄羅斯方塊進(jìn)行左右移動(dòng),旋轉(zhuǎn),加速下落等功能,然后對(duì)這些功能一一進(jìn)行細(xì)化,寫出對(duì)應(yīng)的實(shí)現(xiàn)的代碼,并美化游戲界面,從而完成整個(gè)游戲的設(shè)計(jì)。游戲方塊控制功能當(dāng)玩家按下相應(yīng)的操作鍵位時(shí),通過(guò)條件判斷,判斷該操作是否可行,如果可行就執(zhí)行相應(yīng)的操作。主要的操作有游戲方塊的左移,右移,旋轉(zhuǎn)變形以及方塊加速。例如當(dāng)按下左移按鈕時(shí),方塊會(huì)進(jìn)行判斷是否可左移,返回值為真時(shí)可以左移,否則不能。方塊的生成及顯示功能游戲中會(huì)有兩個(gè)地方產(chǎn)生俄羅斯方塊,一個(gè)是游戲區(qū)域上方會(huì)有俄羅斯方塊落下,還有就是在屏幕右上角,也會(huì)產(chǎn)生下一個(gè)俄羅斯方塊,該俄羅斯方塊為游戲區(qū)域下一個(gè)要產(chǎn)生的方塊。同時(shí)當(dāng)游戲俄羅斯方塊左右移動(dòng),下落,旋轉(zhuǎn)變形時(shí),要與先前的游戲方塊重合并完成消除行功能,還要求出被操作后的方塊坐標(biāo),用新坐標(biāo)重繪下一個(gè)游戲方塊。方塊的擺放消行功能當(dāng)方塊落到底部的時(shí)候,通過(guò)條件判斷,把方塊擺放在屏幕底部并持續(xù)顯示,當(dāng)某行或者某幾行被填滿的時(shí)候,要把這幾行消除,并且被消除的行數(shù)上方的方塊整體下移。游戲分?jǐn)?shù)統(tǒng)計(jì)功能記錄游戲積分,每當(dāng)有行被消除時(shí),游戲積分會(huì)根據(jù)一次消除的行數(shù)而增加相應(yīng)的分?jǐn)?shù),分?jǐn)?shù)要設(shè)置一個(gè)最高值,當(dāng)?shù)竭_(dá)最高分時(shí)等級(jí)增加,難度增大。游戲速度更新功能當(dāng)游戲積分達(dá)到某一條件時(shí),系統(tǒng)將自動(dòng)為玩家提高難度。難度增加的時(shí)候,方塊的下降速度會(huì)加快,增加游戲可玩性和趣味性。游戲等級(jí)更新功能當(dāng)游戲積分達(dá)到某一條件時(shí),系統(tǒng)將自動(dòng)為玩家提高難度。難度增加的時(shí)候,方塊的下降速度會(huì)加快,相應(yīng)的等級(jí)也會(huì)增加,增加游戲可玩性和趣味性。游戲結(jié)束控制功能通過(guò)判斷,如果擺放的方塊超過(guò)屏幕頂端的時(shí)候,則游戲結(jié)束,可以返回菜單重新開始游戲。也可通過(guò)點(diǎn)擊退出按鈕,結(jié)束游戲,退出游戲界面。2.2方塊及旋轉(zhuǎn)變換需求分析本游戲共有7種類型的方塊,而每種類型方塊還可以通過(guò)旋轉(zhuǎn)變換成4種不同形態(tài)的方塊進(jìn)行擺放。方塊生成后可以將它們擺放在一個(gè)游戲顯示運(yùn)行的區(qū)域內(nèi),該區(qū)域可以看作是有許多個(gè)等面積小方格構(gòu)成的區(qū)域,而這些區(qū)域的狀態(tài)只有兩種,被方塊占據(jù)或空閑。因此,對(duì)于整個(gè)游戲區(qū)域的空間是占據(jù)或空閑,可以用一位數(shù)來(lái)標(biāo)識(shí),對(duì)于7種方塊和它們旋轉(zhuǎn)后的形態(tài)我們可以用不同的標(biāo)識(shí)進(jìn)行標(biāo)記。對(duì)于旋轉(zhuǎn),游戲中所有方塊都是按照順時(shí)針旋轉(zhuǎn)的規(guī)則進(jìn)行的,而且在旋轉(zhuǎn)過(guò)程中它們不會(huì)因?yàn)樾D(zhuǎn)而下降,總會(huì)保持在同一高度,但是在同一高度最多旋轉(zhuǎn)三次,就會(huì)下降一格,任何下墜物經(jīng)過(guò)一個(gè)旋轉(zhuǎn)周期還會(huì)變回原型。2.3游戲運(yùn)行需求分析游戲開始后會(huì)隨機(jī)產(chǎn)生一個(gè)方塊,顯示在游戲區(qū)域,同時(shí)右上角也會(huì)隨機(jī)產(chǎn)生一個(gè)新的方塊,該方塊為游戲區(qū)域下一個(gè)將要產(chǎn)生的方塊,游戲區(qū)域不再隨機(jī)生成方塊。當(dāng)游戲區(qū)域的方塊下落到底后,新的方塊再次進(jìn)入游戲區(qū)域,如此循環(huán),直到游戲結(jié)束,這就是游戲的正常工作。當(dāng)用戶進(jìn)行一定的操作交互的時(shí)候,運(yùn)行程序可以根據(jù)用戶的操作指示對(duì)方塊進(jìn)行控制,而這些操作都是響應(yīng)相關(guān)的按鍵而執(zhí)行的。按游戲中定義的旋轉(zhuǎn)鍵,此事件實(shí)現(xiàn)下墜方塊旋轉(zhuǎn)操作,方塊并非任何情況都能旋轉(zhuǎn),如果旋轉(zhuǎn)后與已擺放好的方塊有沖突或超出邊界時(shí),均不能發(fā)生旋轉(zhuǎn)。因此首先要判斷是否有足夠的空間進(jìn)行旋轉(zhuǎn),然后決定是否旋轉(zhuǎn)。按游戲左鍵,此事件實(shí)現(xiàn)下墜方塊左移操作,首先要判斷此方塊是否能夠發(fā)生左移,當(dāng)越界或被其他擺放好的方塊阻擋時(shí),則不能左移。按游戲右鍵,此事件實(shí)現(xiàn)下墜方塊右移操作。首先要判斷此方塊是否能夠發(fā)生右移,當(dāng)越界或被其他擺放好的方塊阻擋時(shí),則不能右移。2.4消行和分?jǐn)?shù)統(tǒng)計(jì)需求分析當(dāng)一個(gè)方塊下落到游戲區(qū)域底部進(jìn)行擺放后就要進(jìn)行一次消行檢測(cè),檢測(cè)是否有行被填滿,檢測(cè)時(shí)從剛擺放的方塊最上面那一行開始往下檢測(cè),由于方塊的形狀限制可知每次最多只能消除四行,所以只需檢測(cè)四行即可。檢測(cè)到一行被填滿時(shí)該行上面的方塊整體下移一行,包括空洞,然后繼續(xù)檢測(cè)下一行,直到四行都被檢測(cè)完。消行以后要統(tǒng)計(jì)游戲的積分,根據(jù)每次消除的行數(shù)t的不同而累加不同的積分,游戲積分通過(guò)公式score+=t*t*100來(lái)計(jì)算,消除一行得100分,消除兩行得400分,消除三行得900分,消除四行得1600分。設(shè)置最高分?jǐn)?shù),當(dāng)分?jǐn)?shù)達(dá)到最高分?jǐn)?shù)后,游戲等級(jí)增加,游戲速度數(shù)值會(huì)增加以及加快速度,游戲速度有一個(gè)最大值,當(dāng)?shù)竭_(dá)這個(gè)值時(shí),游戲速度將不再加快。分?jǐn)?shù)統(tǒng)計(jì)和消除行是連貫動(dòng)作,在消除行后要對(duì)分?jǐn)?shù)進(jìn)行增加,同時(shí)頁(yè)面更新,頁(yè)面上的分?jǐn)?shù),等級(jí),速度都會(huì)更新,游戲區(qū)域的方塊也更新,有一行被消除,游戲繼續(xù)。當(dāng)方塊落到底部的時(shí)候,通過(guò)條件判斷,把方塊擺放在屏幕底部并持續(xù)顯示,當(dāng)某行或者某幾行被填滿的時(shí)候,要把這幾行消除,并且被消除的行數(shù)上方的方塊整體下移。三、模塊分析及設(shè)計(jì)3.1總體設(shè)計(jì)思想俄羅斯方塊游戲設(shè)計(jì)主要從9個(gè)方面進(jìn)行構(gòu)思。<1>游戲主界面的設(shè)計(jì)。<2>方塊的設(shè)計(jì)。<3>方塊的旋轉(zhuǎn)。<4>方塊的運(yùn)動(dòng)情況〔包括向左、向右<5>方塊的自動(dòng)消行功能。<6>游戲速度的調(diào)節(jié)。<7>游戲積分的計(jì)算。<8>游戲開始菜單的設(shè)計(jì)。<9>游戲結(jié)束界面的設(shè)計(jì)。3.2功能模塊開始和退出游戲模塊首先開始和退出游戲按鈕出現(xiàn)在進(jìn)入游戲界面和游戲界面,需要在xml下加入Button按鈕,當(dāng)點(diǎn)擊按鈕時(shí)跳轉(zhuǎn)到目標(biāo)界面或者開始游戲。例如點(diǎn)擊進(jìn)入游戲的開始按鈕,會(huì)進(jìn)入游戲界面,游戲界面也可點(diǎn)擊開始按鈕才能開始游戲,游戲開始后可以點(diǎn)擊退出按鈕,終止當(dāng)前游戲,返回到進(jìn)入游戲界面,或者當(dāng)方塊滿時(shí),游戲自動(dòng)結(jié)束,退出游戲界面。圖3.1圖3.2游戲控制模塊俄羅斯方塊包括對(duì)游戲中的方塊進(jìn)行的操作,如左〔右移動(dòng),旋轉(zhuǎn),下落加速等功能。圖3.3圖3.43.2.3游戲幫助功能在游戲的開始界面上,當(dāng)玩家對(duì)該游戲不熟悉時(shí)可點(diǎn)擊幫助按鈕。圖3.5圖3.6四、制作過(guò)程及要點(diǎn)4.1游戲一個(gè)單元塊的設(shè)計(jì)與實(shí)現(xiàn)每一個(gè)俄羅斯方塊包括四個(gè)四個(gè)單元塊,設(shè)置一個(gè)單元塊的大小,對(duì)單元塊的位置用坐標(biāo)表示,根據(jù)繪制好的網(wǎng)格定義單元格坐標(biāo),判斷單元格的一些功能的實(shí)現(xiàn),例如旋轉(zhuǎn),左右移動(dòng),是否與其他單元塊接觸。通過(guò)檢測(cè)單元塊是否超界來(lái)判斷,并把結(jié)果返回。4.2俄羅斯方塊的控制設(shè)計(jì)方塊是游戲最基本的元素,俄羅斯方塊所有的操作都是建立在對(duì)方塊的操作上。對(duì)方塊的控制,實(shí)際就是對(duì)每一個(gè)小方塊的控制,一個(gè)俄羅斯方塊單元是由4個(gè)小方塊構(gòu)成,通過(guò)計(jì)算每一個(gè)小方塊的橫縱坐標(biāo)來(lái)表現(xiàn)出一個(gè)下落或者一個(gè)已經(jīng)擺放好的俄羅斯方塊單元。由此來(lái)布置游戲區(qū)域方塊的顯示,方塊的控制主要在TetrisBlock類里實(shí)現(xiàn),用來(lái)判斷方塊的各種操作是否可行,如果可行則執(zhí)行相應(yīng)的操作,否則操作無(wú)效。控制方塊時(shí),首先要判斷該操作是否可以執(zhí)行,判斷方法主要有判斷方塊是否可以左右移動(dòng),判斷方塊是否碰壁,判斷方塊是否觸頂。判斷方塊是否可以左移。包括方塊的翻轉(zhuǎn)以及當(dāng)某一行的方塊滿后的消除功能。首先對(duì)俄羅斯方塊的定義進(jìn)行初始化,如種類,方向,顏色,以及存放用的數(shù)組。俄羅斯方塊需進(jìn)行判斷,需要對(duì)每個(gè)單元塊進(jìn)行判斷,例如是否能旋轉(zhuǎn),需要每一個(gè)單元塊都能旋轉(zhuǎn),整個(gè)方塊才能旋轉(zhuǎn),接著是判斷是否接觸邊界,如果已接觸邊界,則不能左〔右移動(dòng),否則可左〔右移動(dòng),方塊下落過(guò)程中可加速,需判斷是否接觸底端或與其他方塊接觸,接觸則不能加速,反之可加速。4.3俄羅斯方塊的設(shè)計(jì)與實(shí)現(xiàn)通過(guò)構(gòu)造函數(shù),定義隨機(jī)產(chǎn)生方塊種類以及對(duì)應(yīng)填充色,可隨機(jī)產(chǎn)生一個(gè)俄羅斯方塊。對(duì)俄羅斯方塊的位置用坐標(biāo)表示,判斷當(dāng)一行滿之后,消除這一行并相應(yīng)的分?jǐn)?shù)增加。4.4要點(diǎn)分析完成這個(gè)項(xiàng)目主要有幾個(gè)問(wèn)題要處理:①邊界問(wèn)題,即如何判斷俄羅斯方塊是否已經(jīng)到達(dá)邊界,主要是在左右移動(dòng)和下降過(guò)程中,判斷俄羅斯方塊是否已經(jīng)抵達(dá)邊界,使其不超越邊界。②接觸問(wèn)題,即如何判斷俄羅斯方塊已經(jīng)與其他俄羅斯方塊接觸,此時(shí)應(yīng)該停止方塊的下落,或者避免方塊間重合。③旋轉(zhuǎn)問(wèn)題,俄羅斯方塊要旋轉(zhuǎn)很簡(jiǎn)單,只要用轉(zhuǎn)換公式即可,但問(wèn)題是如何判斷旋轉(zhuǎn)后的位置是否不合法,即有沒(méi)有可能觸及邊界,或者與其他俄羅斯方塊重合。④消去問(wèn)題,當(dāng)網(wǎng)格中有一行填滿了方塊,需要消去此行,并將在其上的所有方塊均向下移動(dòng)一行,更新分?jǐn)?shù)等相關(guān)信息。第①和第②個(gè)問(wèn)題類似,每個(gè)俄羅斯方塊〔TetrisBlock對(duì)象包含四個(gè)更小的塊單元〔BlockUnit>,在處理這兩個(gè)問(wèn)題的時(shí)候只要在塊單元類當(dāng)中添加判斷塊單元對(duì)象是否接觸邊界或者其他俄羅斯方塊的塊單元的方法,然后俄羅斯方塊類的判斷接觸邊界或其他俄羅斯方塊的方法,只需依次調(diào)用該俄羅斯方塊對(duì)象的所有塊單元對(duì)象的判斷方法,若其中一個(gè)塊單元接觸邊界,則該俄羅斯方塊接觸邊界。而邊界和方塊接觸問(wèn)題都可以大致分為兩類,a.接觸兩側(cè)邊界或在兩側(cè)接觸其他俄羅斯方塊,b.接觸網(wǎng)格底部邊界或者方塊接觸其下的其他俄羅斯方塊。這兩類問(wèn)題需要分開處理,因?yàn)榉綁K的下落和左右移動(dòng)是分開進(jìn)行的,當(dāng)方塊左右移動(dòng)時(shí)不能穿過(guò)兩側(cè)邊界或與其他俄羅斯方塊重合,當(dāng)方塊下落時(shí),則不能穿過(guò)底部邊界或穿過(guò)其下的俄羅斯方塊。

第③個(gè)問(wèn)題,先克隆一個(gè)下落的俄羅斯方塊,對(duì)其進(jìn)行旋轉(zhuǎn)操作,然后判斷其是否超越邊界或者與其他俄羅斯方塊重合,若其狀態(tài)合法則將下落的俄羅斯方塊進(jìn)行旋轉(zhuǎn)操作,否則結(jié)束操作并返回。

第④個(gè)問(wèn)題,用一個(gè)數(shù)組標(biāo)記每行塊單元個(gè)數(shù),并計(jì)算每行最多可填入多少個(gè)塊單元,若某一行已經(jīng)填滿則,刪除每個(gè)俄羅斯方塊中在該行上的塊單元,并且將在該行之上的塊單元全部向下移動(dòng)一行。五、設(shè)計(jì)總結(jié)通過(guò)這次俄羅斯方塊課程設(shè)計(jì),不能說(shuō)對(duì)這門課學(xué)到了很多,而是對(duì)俄羅斯方塊這個(gè)游戲加深了

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論