版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、<p> Java課程設計文檔</p><p> 課程名稱:俄羅斯方塊游戲 </p><p><b> 課程制作人:</b></p><p> 1.系統(tǒng)概述………………………………3</p><p> 2.項目計劃書以及小組人員分工………4</p><p>
2、3.系統(tǒng)流程圖……………………………5</p><p> 4.系統(tǒng)操作界面…………………………8</p><p> 5.詳細設計………………………………9</p><p> 6.用戶手冊與游戲幫助…………………18</p><p> 7.測試計劃………………………………20</p><p> 8.改進意見……
3、…………………………22</p><p> 9.課程設計心得體會……………………23</p><p> 10.參考書籍及資料…………………… 24</p><p><b> 系統(tǒng)概述</b></p><p><b> 1現狀分析</b></p><p> 在個人電
4、腦日益普及的今天,一些有趣的桌面游戲已經成為人們在使用計算機進行工作學習之余休閑娛樂的首選,而俄羅斯方塊游戲是人們最熟悉的小游戲之一,它以其趣味性強,易上手等諸多特點得到了大眾認可,因此開發(fā)此游戲軟件可滿足人們的一些娛樂需求。</p><p> 此俄羅斯方塊游戲可以為用戶提供一個可在普通個人電腦上運行的,界面美觀的,易于控制的俄羅斯方塊游戲。</p><p><b> 2項
5、目要求</b></p><p> 俄羅斯方塊是一款適合大眾的游戲軟件,它適合不同年齡的人玩。本軟件實現的基本功能如下:</p><p> 游戲區(qū):玩家可以在游戲區(qū)中堆積方塊,并能夠在游戲過程中隨時了解得分情況和下一個將要出現方塊的提示。</p><p> 游戲控制:玩家可以通過游戲控制功能來控制游戲開始,暫停,結束游戲,游戲難度的設置以及音效控制。
6、</p><p> 玩家游戲信息存儲及刪除:玩家的得分在前五名時,將會記錄在排行榜上,同時可為玩家清空排行榜。</p><p><b> 3系統(tǒng)模塊結構圖</b></p><p> 依據需求分析結果,俄羅斯方塊游戲可以分為三個模塊:游戲區(qū)、游戲控制區(qū)、數據操作區(qū)。系統(tǒng)模塊結構如圖:</p><p> 項目計劃書
7、以及小組人員分工</p><p><b> 1 項目開發(fā)計劃書</b></p><p> 2.2 小組人員分工表</p><p><b> 系統(tǒng)流程圖</b></p><p><b> 1游戲區(qū)模塊</b></p><p> 該模塊為玩家提
8、供主題游戲功能,能夠處理玩家的各種操作,為玩家提供下一個方塊的提示、當前等級、當前分數的顯示。該模塊應包括三個字功能模塊:創(chuàng)建游戲區(qū)、處理玩家游戲操作區(qū)、游戲顯示區(qū)。模塊功能樹如圖:</p><p> 3.2游戲控制區(qū)模塊</p><p> 該模塊為玩家提供游戲控制功能,包括開始游戲、暫停/繼續(xù)游戲、結束游戲、等級設置。玩家可自行設定游戲等級,主要提供10種級別,級別越高,游戲速度越快
9、,難度越大。模塊功能樹如圖:</p><p> 3.3數據操作區(qū)模塊</p><p> 該模塊為玩家提供游戲、玩家信息存儲與查詢功能。包括排行榜信息錄入、排行榜查詢、排行榜清空、游戲幫助,四個模塊。模塊功能樹如圖:</p><p><b> 3.4系統(tǒng)流程描述</b></p><p> 此流程圖為俄羅斯方塊游戲系
10、統(tǒng)流程描述。</p><p><b> 系統(tǒng)操作界面</b></p><p><b> 1游戲打開界面</b></p><p><b> 游戲運行界面</b></p><p><b> 詳細設計</b></p><p>&l
11、t;b> 類一:控制面板類</b></p><p> 類定義:class ControlPanel</p><p> 功能描述:界面設計應遵循簡介美觀方便易用的基本原則。</p><p><b> 設計方法:</b></p><p> 方法①:fanning方法</p><
12、p> 方法定義:public void fanning()</p><p> 功能描述: 這個方法就是要保證在放大和縮小程序實現窗口大小的時候,其中的格子也會隨之改變,也就是我們經常說的最大化最小化,當窗口發(fā)生變化時,方塊自動調整大小與之相匹配。</p><p> 方法②:reset方法</p><p> 方法定義:public void reset(
13、)</p><p> 功能描述:這個就是將游戲界面重置,將游戲界面回到初始狀態(tài),這個方法主要是通過將窗口中的著色小方塊全部消除顏色,然后再重新去給窗口著色,即著上背景色,給玩家看上去也就是被刷新了。</p><p><b> 設計描述:</b></p><p> controlPanel面板中包含tipPanel, InfoPanel,
14、buttonPanel子面板,分別為圖形界面面板,信息面板,按鈕面板</p><p> 圖形顯示面板設計為BorderLayout布局樣式.其中添加tipPanel面板居中(以顯示下一個俄羅斯方塊樣式)</p><p> 信息面板設計為4行1列式的GridLayout網格狀布局,并且添加當前等級,顯示當前等級文本域,當前分數,顯示當前分數文本域</p><p>
15、 ?、?按鈕面板設計為5行1列式的GridLayout網格狀布局 ,并且添加開始游戲, 暫停/繼續(xù),結束,加等級,減等級五個按鈕</p><p> ⑤Bar欄中添加五個菜單按鈕,分別為游戲菜單,控制菜單,排行榜菜單,音效菜單,關于菜單。</p><p> ?、抻螒虿藛卫镉行掠螒?,退出兩個選項卡,窗口樣式菜單里有windows,motif,ment這3種樣式選項卡,信息菜單里面有作者
16、,幫助兩個選項卡</p><p> 面板設計效果圖如下:</p><p><b> 類二:畫布類</b></p><p> 類定義:class GameCanvas</p><p> 功能描述: 在游戲區(qū)顯示方塊</p><p><b> 設計方法:</b><
17、/p><p> 方法①:paintComponent方法</p><p> 方法定義public void paintComponent(Graphics g)</p><p> 功能描述;其中box就是表示預顯示框,然后檢查顯示框中每個小格子是否需要著色,如果需要著色,則著上方塊得顏色,不需要著色的則著上背景顏色,一共有16個小格子構成了一個預顯示塊,共需要檢測
18、16次,其實當中和實現游戲中的程序有著共同點。</p><p> 方法②:removeLine方法</p><p> 方法定義:public void removeLine(int row)</p><p> 功能描述:這個就是實現如何將行消除的,其實就是在判斷了該行該消除的時候將上面的方塊都向下平移一格,這樣在實現程序界面也就給玩家是消去一行的視覺效果。&l
19、t;/p><p><b> 類三:方塊類</b></p><p> 類定義:class RussiaBlock</p><p> 功能描述:七種類型方塊的父類,定義了所有類型方塊的共同特征和行為。</p><p><b> 設計方法:</b></p><p><b&
20、gt; 方法①:run方法</b></p><p> 方法定義:public void run()</p><p> 功能描述:實現方塊的運行,下落。</p><p> 方法②:moveTo方法</p><p> 方法定義:public synchronized boolean moveTo()</p>&
21、lt;p> 功能描述:將當前畫移動到newRow/ newCol所指定的位置。</p><p> 方法③:isMoveable方法</p><p> 方法定義:private boolean isMoveable()</p><p> 功能描述:判定當前塊是否能被邊界、其他方塊擋住以及不能移動的情況。</p><p> 方法④
22、:turnNext方法</p><p> 方法定義:public void turnNext()</p><p> 功能描述:實現方塊的旋轉。</p><p> 方法⑤:turnTo方法</p><p> 方法定義:private synchronized boolean turnTo()</p><p>
23、功能描述:將當前塊變成newStyle所指定的塊樣式。</p><p> 方法⑥:isTurnable方法</p><p> 方法定義:private boolean isTurnable()</p><p> 功能描述:判定當前塊是否能變成newStyle所指定的塊樣式。</p><p> 方法⑦:erase方法</p>
24、<p> 方法定義:private void erase()</p><p> 功能描述:將當前塊從畫布的對應位置移除。</p><p> 方法⑧:display方法</p><p> 方法定義:private void display()</p><p> 功能描述:實現重畫畫布的時候顯示當前塊。</p>
25、<p><b> 類四:主游戲類</b></p><p> 類定義:RussiaBlocksGame</p><p> 功能描述: 游戲主類,負責游戲的全局控制。</p><p><b> 設計方法:</b></p><p> 方法①:datasort方法</p>
26、<p> 方法定義:public void datasort()</p><p> 功能描述:實現連接數據庫,并對數據庫中所有數據進行排序輸出。</p><p> 方法②:reportGameOver方法</p><p> 方法定義:private void reportGameOver()</p><p> 功能描述
27、:實現輸出游戲總分,輸入用戶姓名,錄入數據庫并顯示最新排行。</p><p> 方法③:datasortdelete方法</p><p> 方法定義:public void datasortdelete()</p><p> 功能描述:實現排行榜清空。</p><p> 方法④:checkFullLine 方法</p>
28、<p> 方法定義:public void checkFullLine() </p><p> 功能描述: 這個是表示的清除需要消除的行的算法,只需要對行中的小方塊進行判斷,判斷是否都已經著色,如果都著色了說明改行是要消除的,而且還需要進行加分措施,在進行多行消除的時候,可以給玩家更多的獎勵,這也符合俄羅斯方塊的游戲股則。</p><p> 方法⑤:play方法</
29、p><p> 方法:private void play()</p><p> 功能實現:實現游戲開始,同時在游戲的開始時,方塊隨即從頂端的任何位置落下。</p><p> 方法⑥:getCurLevelScore方法</p><p> 方法定義:public int getCurLevelScore()</p><p&
30、gt; 功能描述:實現獲得每個等級的分數</p><p> 方法⑦:setLevel方法</p><p> 方法定義:public void setLevel(int level)</p><p> 功能描述:進行等級的手動調節(jié)</p><p> 方法⑧:isGameOver方法</p><p> 方法定義
31、:private boolean isGameOver() </p><p> 功能描述:該方法是判斷游戲是否該結束了,只需要判斷窗口中的最頂端那一行中是否有方塊,同時也要判斷最底端的是否也有,如果都有程序會自動彈出“游戲結束”的對話框,然后進行數據的記錄,存入數據庫,寫入排行榜,可以供玩家進行參考,判斷最底端的是因為,在游戲開始的時候直接結束游戲也會彈出對話框,為了避免這個問題,加一個判斷對的條件,基本可以實
32、現原來計劃的功能。</p><p> 方法⑨:levelUpdate 方法</p><p> 方法定義:public void levelUpdate()</p><p> 功能描述:這是更新等級的函數,一個是通過分數的判斷,在程序中定義了一個本級得分,然后當本級得分達到一個分數的時候,就可以進入下一個等級,同時根據等級的提高,之前定義的下落速度也會提高,同時
33、減去升級需要的分數,也就可以用作下一次升級的判斷。</p><p><b> ?。?)設計描述:</b></p><p><b> ?、俅绑w設計</b></p><p> 窗體大?。海?00,400),默認居中顯示,代碼如下:</p><p> Dimension scrSize=Toolki
34、t.getDefaultToolkit().getScreenSize();</p><p> setLocation((scrSize.width-getSize().width)/2,(scrSize.height-getSize().height)/2);</p><p> 添加windows窗口事件:</p><p> addWindowListene
35、r( new WindowAdapter()</p><p><b> {</b></p><p> public void windowClosing(WindowEvent event)</p><p><b> {</b></p><p> System.exit(0);</p&
36、gt;<p><b> }</b></p><p><b> } );</b></p><p> 窗體名稱為:俄羅斯方塊游戲。</p><p><b> ?、诓藛卧O計</b></p><p> 菜單條設計:包括游戲菜單,控制菜單,排行榜菜單,音效菜單,關于
37、菜單。</p><p> 游戲菜單:包括重新游戲,加等級,減等級,退出四個菜單項。</p><p> 控制菜單:包括暫停,繼續(xù),結束三個菜單項。</p><p> 排行榜菜單:包括排行榜顯示,清除排行榜數據。</p><p> 音效菜單:包括音效的開與音效的關。</p><p> 關于菜單:包括制作人,與幫助
38、。</p><p><b> 以菜單項為例 </b></p><p> gameMenu = new JMenu("游戲"); </p><p> newGameItem = new JMenuItem("重新游戲");</p><p> turnHardItem
39、= new JMenuItem("加等級");</p><p> turnEasyItem = new JMenuItem("減等級");</p><p> exitItem = new JMenuItem("退出");</p><p> gameMenu.add(newGameItem);</
40、p><p> gameMenu.add(turnHardItem);</p><p> gameMenu.add(turnEasyItem);</p><p> gameMenu.add(exitItem); </p><p><b> ?、厶砑颖尘耙魳贩椒?lt;/b></p><p> pub
41、lic void Music ()</p><p><b> {</b></p><p> String music = "background.wav"; </p><p> final AudioClip clip = Applet.newAudioClip(getClass().getReso
42、urce(music)); </p><p> clip.play(); </p><p><b> }</b></p><p> 通過調用Music()來實現背景音樂播放。</p><p> 類五:虛擬單個方格類類</p><p> 類定義:RussiaBlocksGame&l
43、t;/p><p> (2) 功能描述:控制方格的顏色。</p><p> ?。?) 設計方法:</p><p> 方法:setColor方法</p><p> 方法定義:public void setColor()</p><p> 功能描述:對有標記的方塊進行著色</p><p>&l
44、t;b> 用戶手冊與游戲幫助</b></p><p> 控制區(qū):玩家在界面上可以看到開始游戲的按鈕,點擊該按鈕,開始游戲,控制區(qū)和界面上都有暫停,繼續(xù)的按鈕,按下暫停則游戲暫停,并且界面上的按鈕變成繼續(xù)的字樣,同理按下繼續(xù),游戲繼續(xù),用戶界面上面還有等級的增加和降低,直接點擊按鈕就可以實現對等級的操作</p><p> 游戲菜單區(qū):新游戲:如果玩家在結束了游戲或者在
45、游戲中向開始進行新的游戲,則可以點擊該按鈕,同時可以進行等級的設置,如果玩家不想繼續(xù)玩得話,直接點擊結束按鈕結束游戲,并退出窗口。</p><p> 控制菜單:暫停,繼續(xù),退出游戲的功能都和控制區(qū)一樣的效果</p><p> 排行榜菜單:可以查看游戲的最高分的排行榜,可以準確地定位自己分數的檔次,同時也可以對排行榜進行清空,也就是排行榜中沒有了數據了。</p><p
46、> 音效菜單:可以對游戲過程中的背景音樂和游戲中的聲音進行開關,玩家用起來非常方便</p><p> 關于菜單:該菜單包含兩個模塊,一個是游戲的操作的簡介,方向鍵的左,下,右就是游戲中的操作方法,方向鍵上則是對圖形的反轉變化,空格鍵則是一鍵到底的快捷鍵。第二個模塊則是制作人,即是該游戲的制作人的說明。</p><p><b> 游戲規(guī)則</b></p
47、><p> 游戲軟件隨即不斷的下落其中方塊中的一種,玩家在方塊落到底部之前將方塊盡量整齊的擺放好,以便能夠對滿一行進行消除,玩家可以旋轉,左右移動方塊,以選擇最佳的擺放位置和方式,也可以加快下落的速度,甚至可以直接落到底部,以便節(jié)省游戲的時間。當方塊落到底部的時候,就不能進行操作的,此時會在頂部出現另一個方塊。在堆放方塊的時候,如果一行堆滿的話,則進行消行,上面的方塊自動的向下移動一行。消除一行可以得到100分,同
48、時消除多行的時候可以進行更多的獎勵,累計達到2000分的時候可以自動提高游戲的等級,當游戲到達最高等級的時候就不再進行等級的提高。同時在游戲的同時也可以聽聽背景音樂,放松心情。在游戲的開始和結束的時候都可以對排行榜進行訪問,可以對自己的游戲水平進行一個正確的評價。</p><p><b> 測試計劃</b></p><p><b> 7.1右側按鈕測試&
49、lt;/b></p><p> 1.點擊“開始游戲” 按鈕</p><p><b> 效果:游戲開始</b></p><p><b> 結果:正常</b></p><p> 2.點擊“暫停/繼續(xù)” 按鈕</p><p> 效果:游戲根據操作能暫停與繼續(xù)相互切換
50、</p><p><b> 結果:正常</b></p><p> 3.點擊“結束” 按鈕</p><p> 效果:游戲重置,屏幕重新刷新</p><p><b> 結果正常</b></p><p> 4.點擊“加等級” 按鈕</p><p>
51、 效果:游戲等級加一級,游戲界面顯示出加后的等級。 </p><p><b> 結果正常</b></p><p> 3.點擊“減等級” 按鈕</p><p> 效果:游戲等級加一級,游戲界面顯示出減后的等級。</p><p><b> 結果正常</b></p><p&g
52、t; 7. 2界面菜單選項的功能測試</p><p> 1.“游戲”菜單的測試</p><p> 點擊“游戲” “重新游戲”</p><p><b> 效果:界面重置。 </b></p><p><b> 結果:正常</b></p><p> 2.點擊“游戲”“
53、加等級”</p><p> 效果:游戲等級加一級,游戲界面顯示出加后的等級。</p><p><b> 結果:正常</b></p><p> 3.點擊“游戲”“減等級”</p><p> 效果:游戲等級加一級,游戲界面顯示出減后的等級。</p><p><b> 結果:正常&l
54、t;/b></p><p> 4. 點擊“游戲”“退出”</p><p> 效果:游戲結束,關閉窗口 </p><p><b> 結果:正常</b></p><p> 4. 點擊“排行”“查詢排行榜信息”/“清除排行榜信息” </p><p><b> 結果:正常<
55、/b></p><p> 5. 點擊“音效”“音效開”/“音效關”</p><p> 效果:背景音樂開與關 </p><p><b> 結果:正常</b></p><p> 6. 點擊“關于”“制作人”/“幫助”</p><p> 結果:窗口彈出正常 </p><
56、;p> 7. 3鍵盤事件的功能測試</p><p><b> 1.方塊移動測試</b></p><p> 游戲過程中,點擊“左、右、下”方向鍵</p><p> 輸出:方塊正常移動,不會移出邊界</p><p><b> 結果:正常</b></p><p>&
57、lt;b> 2. 方塊反轉測試</b></p><p> 游戲過程中,點擊向上方向鍵</p><p> 輸出:方塊無邊界和障礙物阻擋的情況下可反轉</p><p><b> 結果:正常</b></p><p> 7. 4方塊堆砌與消行測試</p><p> 1. 當方
58、塊下落到最底面或與障礙物接觸時</p><p> 輸出:方塊成功堆砌在底部</p><p><b> 結果:正常</b></p><p> 2. 當出現滿行現象時</p><p> 輸出:所有滿行被消除,方塊依次下移</p><p><b> 結果:正常</b>&l
59、t;/p><p> 7. 5消行音效測試:</p><p><b> 結果正常。</b></p><p><b> 改進意見</b></p><p> 系統(tǒng)中還存在一些不足之處,可以對本系統(tǒng)做如下修改:</p><p> 做進一步地功能拓展和研究,如添加FLSAH效果等
60、。</p><p> 設計玩家進入游戲的界面。</p><p> 添加背景圖片,讓游戲更加生動。</p><p> 對軟件進行更詳細的測試,以保證軟件的可用性和適用性。</p><p> 添加互聯網操作,實現網絡對戰(zhàn)。</p><p><b> 課程設計心得體會</b></p>
61、;<p> 課程設計是培養(yǎng)學生綜合運用所學知識,發(fā)現,提出,分析和解決實際問題,鍛煉實踐能力的重要環(huán)節(jié),是對學生實際工作能力的具體訓練和考察過程.</p><p> Java課程設計是對我們本學期學習的一個總結,通過一個全面的課題實驗來檢驗和鞏固我們一學期來所學的知識,通過團隊之間的合作,交流,切身體會軟件編程的經歷。</p><p> Java語言是一門強大的語言,比
62、我們所學過的C語言有很強的功能,可以有美化的圖形界面設計,可以連接數據庫,解決用文件存儲的繁瑣過程,使得軟件所產生的數據更容易管理和維護。</p><p> 我們本次的課程設計運用到了線程創(chuàng)建運行,圖形化界面,與數據庫,使得課題得到合理的體現。在設計初期時,組員通過交流,討論,定下了課題——俄羅斯方塊游戲。分工之后,將整個課題分為三個部分。在編程階段,我們發(fā)現一學期所學的知識難易填補課題所需的知識漏洞,通過參考
63、課外書籍,網絡資源,掌握了課本之外的一些技巧與知識。我們在課程設計的同時感覺到我們還欠缺很多。通過此次課程設計,我們對專業(yè)知識又有了更進一步的了解,對培養(yǎng)我們專業(yè)興趣起到良好的推動作用。</p><p> 課程設計在銜接之時也遇到一些問題,有一些程序BUG,經過討論修改,完善了程序。因為是分工作業(yè),所以相互之間的交流是十分重要的,每次進度的保存要記錄,這樣方便組員之間共享。因為專業(yè)水平還有不足,所以程序不算完美
64、,有一些功能沒有得到實現,這也激勵著我們在以后的專業(yè)課學習中,要更加的努力,填補知識的空缺。經過三周的課程設計,俄羅斯方塊游戲也可以運行,有了此次寶貴的經驗,相信以后的對以后的課程設計有更大的幫助。</p><p><b> 參考書籍及資料</b></p><p> 1、《JAVA編程寶典》李鐘尉 陳丹丹 張振坤編著,人民郵電出版社</p><
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- java課程設計---俄羅斯方塊游戲
- java課程設計---俄羅斯方塊游戲
- java俄羅斯方塊課程設計
- 課程設計-基于java的俄羅斯方塊游戲設計
- 基于java語言的俄羅斯方塊游戲課程設計
- java課程設計報告-俄羅斯方塊
- 俄羅斯方塊游戲課程設計報告
- 《c++俄羅斯方塊》課程設計--俄羅斯方塊
- 畢業(yè)設計---俄羅斯方塊游戲java
- 俄羅斯方塊課程設計
- 俄羅斯方塊課程設計
- 課程設計---俄羅斯方塊
- 俄羅斯方塊課程設計
- 俄羅斯方塊課程設計
- 俄羅斯方塊課程設計
- 俄羅斯方塊課程設計
- 俄羅斯方塊課程設計
- java課程設計實驗報告俄羅斯方塊
- java課程設計實驗報告---俄羅斯方塊
- c課程設計--俄羅斯方塊
評論
0/150
提交評論