




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
掃雷規格說明1緒論1.1背景說明1.2系統概述2可行性研究報告3需求規格說明書4總體設計說明書5詳細設計說明書6系統實現6.1開發環境6.2關鍵技術6.3運行結果7測試分析報告8心得體會參考文獻1.緒論1.1背景說明:軟件名稱:掃雷用戶:所有掃雷游戲愛好者1.2系統概述1.2.1掃雷游戲的基本要求掃雷游戲分為初級、中級和高級三個級別。單擊游戲菜單可以選擇“初級”、“中級”和“高級”。選擇級別后將出現相應級別的掃雷區域,這時用戶使用鼠標左鍵單擊“開始”便啟動計時器。用戶要揭開某個方塊,可左鍵單擊它。若所揭方塊下有雷,用戶便輸了這一局,若所揭方塊下無雷,則顯示一個數字,該數字代表方塊的周圍的8個方塊中共有多少顆雷。如果用戶認為某個方塊下埋著雷,單擊右鍵可以在方塊上標識一個用戶認為是雷的圖標,即給出一個掃雷標記。用戶每標記出一個掃雷標記(無論用戶的標記是否正確),程序將顯示的剩余雷數減少一個。(5)當用戶點中雷時,將有“你輸了”的提示出現,勝利時,將有“你贏了”的提示出現。1.2.2需實現的主要功能用戶可以自定義級別并且可以任意輸入雷數;具有計時功能,即顯示用戶完成移動盤子所花費的時間。2可行性研究報告2.1技術可行性分析本程序是java平臺下的windows應用程序,總體規模較小適合個人單獨完成。開發人員是和軟件專業相關的學生,有軟件開發方面的基礎,有能力完成該程序的設計及開發工作。2.2時間和資源可行性分析本程序按預定計劃進行,有足夠的時間完成預算中的人員可全天候的進行軟件開發工作按照課程設計時間及安排,計劃如下:課程設計之前:查閱資料,確定題目;搜集資料,調研分析。系統分析與設計。系統實現/測試。整理文檔,成果驗收,提交設計報告。所以有充分的時間進行軟件開發工作,所以硬件方面的資源可得到滿足。2.3軟件要實現的功能及可行性詳情見需求分析3需求規格說明書3.1需求分析3.1.1功能需求:功能簡介隨機布雷可以由電腦進行隨機布雷自定義雷的數量可以由用戶自定義雷的數量計時有計時裝置,可以自開始掃雷后自動記時難度級別選項各個級別的難度對應雷的數量的不同游戲結束提示在游戲結束時會出現提示對話框,并停止計時自定義雷的數量界面自定義雷的數量界面程序主界面程序運行的主界面3.1.2運行環境需求:基于J2SE平臺的SDK1.6版本jdk1.6.0_31的java程序開發環境3.2硬件需求:處理器型號:奔騰III及同等型號以上處理器內存容量:512MB以上內存(可運行數據庫管理系統)外存容量:5G以上硬盤空間聯機或脫機:脫機e-輸入及輸出設備的型號和數量:鼠標、彩色顯示器3.3軟件需求:編譯程序:jdk1.6.0_313.4控制需求:使用全鼠標控制4總體設計說明書在設計掃雷游戲時,需要編寫9個Java源文件:MineGame.java、MineArea.java、Block.java、BlockView.java、LayMines.Java、ShowRecord.java、voiceShow.java、userDefine.java、ruleShow
掃雷游戲除了需要編寫上述java源文件所給出的類外,還需要Java系統提供的一些重要的類,如File、JButton、和Jlabel等類。掃雷游戲所用到的一些重要的類以及之間的組合關系如下圖所示:5詳細設計說明書5.1MineGame類UML類圖MineGame類是javax.swing包中Jframe的一人子類,并實現了ActionListener接中,標明該類的主要成員變量和方法的UML圖如下圖所示:以下是UML圖中有關數據和方法的詳細說明。成員變量-bar和fileMenu提供菜單操作,單擊游戲菜單中的選項為“初級”“中級”“高級”“自定義”“背景聲音”“退出”“游戲規則”等-MineArea是掃雷區域,提供有關掃雷的主要功能。userdefine負責用戶自定義功能-VoiceShow負責背景音樂功能ruleshow負責顯示游戲規則功能2)MineGame()是構造方法,負責完成窗口的主要功能?actionPerformedCActionEvent)方法是MineGame類實現的ActionLister接口中的方法,該方法負責執行菜單發出的有關命令。用戶選擇菜單項可以觸發ActionEvent事件,導致actionPerformed(ActionEvent)方法執行相應的操作,例如將mineAreaw創建的雷區設置為初級,中級,高級等。Main(String[])方法是程序的入口方法MineArea5.2.1效果圖:UML圖MineArea類是javax.swing包中JPanel容器的子類,實現了ActionListener和MouserListener接口,所創建的對象:mineArea是MineGame類中最重要的成員之一,作為一個容器添加到MineGame窗口的中心。標明MineArea類的主要成員變量、方法以及和MineGame類之間組合關系的UML圖如下所示:以下是UML圖中有關數據和方法的詳細說明。成員變量-Block是Block類型的數組,用來確定雷區有多少需進行掃雷的方塊。blockView是Blockview類型的數組,負責為block數組中的Block對象提供視圖。-Lay是LayMines類型的對象,負責設置block數組中的哪些方塊是雷或不是雷。reStart是一個按鈕對象,用戶單擊它重新開始游戲。time是計時器對象,負責計算用戶的用時。方法initMineArea(int,int,int,int)方法可根據參數提供的數據設置雷區的寬度,高度,雷的數目以及雷區的級別。actionPerformed(ActionEvent)是MIneArea類實現ActionListener接口中的方法。當用戶單擊blockView中的某個方塊時,actionPerformed(ActionEvent)方法負責執行有關算法,例如,當用鼠標左鍵單擊方塊上的按鈕后,若該方塊下有雷,actionPerformed(ActionEvent)方法將使用戶輸掉本局,若該方塊下又雷,actionPerformed(ActionEvent)方法將顯示BlockView對象中的標簽,該標簽上是一個數字,該數字代表當前方塊的周圍的8個方塊中總共有多少顆雷show()方法是一個遞歸方法。actionPerformed(ActionEvent)方法執行時將調用show方法進行掃雷。mousePress(MouseEvent)方法是MineArea類實現的MouseListener接口中的方法,當用戶按下鼠標右鍵時,mousePress(MouseEvent)方法負責讓方塊上顯示一個探雷標記。inquireWin()方法用來判斷用戶是否掃雷成功,如果成功該方法負責讓record對話框可見。所謂掃雷成功是指不僅找到了全部的雷而且用時最少。Block類效果圖Block對象負責封裝雷區中方塊中的數據以及對這些數據的操作,外觀效果由Blockview負責提供(見后面的BlockView)。5.3.2UML圖Block類創建的對象是數組block的單元的對象°Block型數組block是MineArea類的重要成員之一。標明Block類的主要成員變量和方法以及和MineArea類之間的組合關系的UML圖如下圖所示:Block *MiueAreaname:String ' isMine:booleanaroundMineNumber:int l isMark: booleanmineicon:Imageicon 1 isOpen: booleansetArouridXIineNuinber(int):voidgetAroundMineNumber^:intblock:BLock[][]以下是UML圖中有關數據的方法的詳細說明。成員變量,name是方塊上的名字。aroundMineNumber是方塊周圍雷的數目。mineicon是方塊上雷的圖標。sMine用來表示方塊是否是雷。isMark用來表示方塊是否被標記。isOpen用來表示方塊是否被挖開。方法setAroundMineNumber(int)方法用來設置aroundMineNumber的值。getAroundMineNumber()方法用來獲取aroundMineNumber的值。BlockView類5.4.1效果圖BlockView創建的對象負責為Block對象提供視圖,以便用戶通過該視圖與Block對象交互。BlockView對象使用一個標簽和按鈕為Block對象提供視圖,標簽和按鈕按著卡片布局層疊在一起,默認狀態按鈕遮擋住標簽。當用戶單擊按鈕后,如果Block對象時雷,BlockView對象中的標簽顯示的事雷的圖標;如果Block對象不是雷,標簽顯示的是周圍雷的總數。效果如下圖所示:UML圖BlockView類是javax。swing包中JPanel類的一個子類,創建的對象是數組blockView的單元中的對象。BlockView型數組BlockView是MineArea類的重要成員之一。標明BlockView類的主要成員變量和方法以及和MineArea類之間的組合關系的UML圖如下圖所示:以下是UML圖中有關數據的方法的詳細說明。1) 成員變量blockNameOrlcon用來顯示Block對象的name,number和mineicon屬性。blockCover用來遮擋blockNameOrlcon。card卡片布局2) 方法,giveViewCBlockblock)方法給參數指定的Block對象提供視圖,如果Block對象的isMine屬性為true,即方塊是雷,那么blockNameOrlcon標簽上設置的文本就是Block對象的name屬性的值,同時blockNameOrlcon標簽上設置的圖標就是Block對象的mineicon指定的圖標。如果Block對象的isMine屬性為false,blockNameOrlcon標簽上設置的圖標就是Block對象的aroundMineNumber屬性的值,及周圍雷的數目seeblockNameOricon()方法讓用戶看見視圖中的標簽,無法看見按鈕。seeblockNameOricon(0方法讓用戶看見視圖中的按鈕,無法看見標簽。LayMines類效果圖LayMines對象使用隨機算法制定MineArea對象中的哪些Block對象是雷,哪些對象不是雷,沒有可現實的效果圖。UML圖LayMines創建的對象Lay是MineArea中的重要成員,表明該類的主要成員變量和方法以及和MineArea類之間組合關系的UML圖如下圖:LayMiues ?MiueAreamineicon:ImagelGOD_kyMinesForBlock(Bluck[][]?int)lay:LayMiues以下是UML圖中有關數據的方法的詳細說明。1)成員變量mineicon用來存放一個格式為gif的圖像。2)方法layMinesForBlock(Block[][],in)方法對參數指定的Block數組進行設置,其中int參數指定雷的數目,當指定Block數組中每個單元中的方塊是雷時,就將該房快上的圖標設置為mineicon,當指定Block數組中每個單元中的方塊不是雷時,就將該方塊的名字設置為周圍的雷的數目。userDefine類5.6.1效果圖UML圖userDefine是java.awt包中Rame框架的子類,并實現了ActionListener接口。userDefine創建的對像:usedefine是MineArea類的成員之一,當用戶點擊菜單欄中的游戲->自定義時,彈出界面,在界面的文本框中輸入相應的數字。然后單擊確定即可,或者單擊取消退出界面。標明userDefine類的主要成員變量、方法以及和MineArea類之間的組合itwyDefineacticiiiPeffbiiiied(ActJonrYent)iseT\isiljle(lKio:eani-:itwyDefineacticiiiPeffbiiiied(ActJonrYent)iseT\isiljle(lKio:eani-:void行敝.河雷就給教:Ubel說明L說明N說朗土說明hUUel行教「列敏1雷iT曲Fi州苔器1,目器2容器馳P1M1魂定黑消:如岫1[inttwrDffjnpActionLisfenerFrsnie以下是UML圖中有關數據和方法的詳細說明。成員變量?行數,列數,雷數,分數:分別用來顯示行數,列數,雷數,分數?行數1,列數1,雷數1,分數1:用來自定義雷區的長度值,寬度值,所有的雷數值以及每贏一局所得的分數?說明1,說明2說明3,說明4:用來說明上述內容?容器1,容器2,容器3:用來裝Label和TextFiled,以方便布局?確定,取消;單擊“確定”后,如果輸入的內容合法,就會實現自定義的雷區,如果不合法的話,就會彈出一個警告框,提示輸入有誤;單擊“取消”退出自定義窗口。方法actionPerformrd(ActonEvent)方法是userDefine類中實現的ActionListener接口中的方法,當用戶單擊界面的“確定”,該方法被執行,所執行的操作就是,將用戶輸入的信息傳入程序,實驗自定義雷區的難度級別。當用戶單擊界面的“取消”,該方法被執行,所執行的操作就是,退出用戶自定義界面。ruleShow類5.7.1效果圖
UML圖ruleShow是javax.swing包中JRame框架的子類,并實現了ActionListener接口。ruleShow創建的對像:ruleshow是MineArea類的成員之一,當用戶點擊菜單欄中的幫助->游戲規則時,彈出界面,說明游戲MineArea類之間的組合關系的UML圖如下圖所示:以下是UML圖中有關數據和方法的詳細說明。1)成員變量-la1:用來顯示掃雷游戲的規則如下-la2,la2 ;用來顯示下面幾條游戲規則?Con1,Con2,Con3;用來裝la1,la2以實現在JFrame中布局;-bu1;用記單擊bu1,關閉窗口;2)方法actionPerformrd(ActonEvent)方法是ruleShow類中實現的ActionListener接口中的方法,當用戶單擊界面的“確定”,該方法被執行,所執行的操作就是,并關閉界面。6系統實現6.1開發環境:本系統的設計采用的是java語言開發6.2關鍵技術:在Windows操作系統支持下,jdk1.6.0_316.3運行結果6.3.1初始界面6.3.2單擊游戲->自定義->確定II°IIx57重新開始36II°IIx57重新開始36自定認界面自定義游戲難度6.3.4單擊幫助->游戲規則7測試分析報告程序調試是指對程序的查錯和排錯。為了便于查錯、閱讀,在設計該程序的過程中我們采用了結構化程序方法編輯,添加了盡可能多的注釋,這就為接下來的調試過程帶來了很多方便。經過仔細檢查之后進行上機調試。進行編譯,如果在編譯(javac命令)和連接(java命令)過程中發現錯誤,屏幕上顯示了出錯信息,根據提示找到出錯的位置,加以改正,再進行編譯……如此反復,直到順利通過編譯和連接為止。在本次實習過程中碰到的編譯、連接的錯誤主要有:缺少變量定義,定義位置不正確、語法錯誤、注釋的位置,粗心少寫大括號等。錯誤解決方法:(1)缺少變量定義,定義位置不正確;由于該程序相對來講稍有些長,前后有些變量不容易聯系起來,但是在錯誤信息的提示下一般還是很容易找到。不過需要注意的是在定義的時候有些方
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025物業管理企業合同管理研究綜述
- 2025跨國合作技術專利許可合同中文模板
- 2025標準店面租賃合同模板下載
- 瓷磚店做分銷合同協議
- 理發設備租賃合同協議
- 電子版勞務合同協議
- 電控箱加工合同協議
- 電商賣衣服合同協議
- 環保設備施工合同協議
- 玻璃雨棚定做合同協議
- 正式展會合同協議
- 貫徹落實清理規范非融資性擔保方案指導意見
- 工程甩項合同協議
- 期中模擬卷(新疆專用)-2024-2025學年八年級英語下學期核心素養素質調研模擬練習試題(考試版)A4
- 甲狀旁腺切除術后的護理措施
- 2025廣東省深圳市中考數學復習分類匯編《函數綜合題》含答案解析
- 金融工程重點總結
- 漁業資源與漁場學課件藍點馬鮫學習資料
- 2024慢性鼻竇炎診斷和治療指南解讀課件
- 2025年度毛絨玩具采購合同
- (T8聯考)2025屆高三部分重點中學3月聯合測評生物試卷(含答案詳解)河北版
評論
0/150
提交評論