掃雷的課程設計報告_第1頁
掃雷的課程設計報告_第2頁
掃雷的課程設計報告_第3頁
掃雷的課程設計報告_第4頁
掃雷的課程設計報告_第5頁
已閱讀5頁,還剩16頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、西安文理學院信息工程學院課程設計報告設計名稱:數(shù)據(jù)結構課程設計設計題目:實現(xiàn)一個N*M的掃雷游戲學生學號:專業(yè)班級:軟件13級四班學生姓名:樊秀琳學生成績:指導教師(職稱):謝巧玲(講師) 課題工作時間:至說明:1、報告中的任務書、進度表由指導教師在課程設計開始前填寫并發(fā)給每個學生。2、學生成績由指導教師根據(jù)學生的設計情況給出各項分值及總評成績。3、所有學生必須參加課程設計的答辯環(huán)節(jié),凡不參加答辯者,其成績一律按不及格處理。答辯由指導教師實施。4、報告正文字數(shù)一般應不少3000 字,也可由指導教師根據(jù)本門綜合設計的情況另行規(guī)定。5、平時表現(xiàn)成績低6 分的學生,取消答辯資格,其本項綜合設計成績按

2、不及格處理。信息工程學院課程設計任務書學生姓名樊秀琳學號專業(yè)班級軟件工程13級四班設計題目實現(xiàn)一個N*M的掃雷游戲內容概要:(包含要求采用的設計環(huán)境或開發(fā)環(huán)境(軟、硬環(huán)境),采用的關鍵技術等),系統(tǒng)/設計所包含的基本功能等)程序在eclipse義獻資料:1張躍平.JAVA2實用教程(第三版)M.清華大學出版社,20062張躍平.JAVA課程設計(第二版)M.清華大學出版社,20093葉核亞.數(shù)據(jù)結構(Java)(第二版)M.電子工業(yè)大學出版社,2008設計要求:(設計所必須達到的基本功能要求、文檔格式要求及其他等)工作期限: 設計工作自2015年6月22日至201年7月3日止。指導教師:院長:

3、日期:2015年6月22日信息工程學院課程設計進度安排表學生姓名:樊秀琳 學號: 專業(yè):軟件工程班級:13級四班起止日期內容備注6月22日6月23日下任務書;收集、閱讀、整理相關參考文獻,并進行 歸納和概括總結,完成項目/任務背景介紹部分文字 內容。6月24日6月26日系統(tǒng)功能設計和模塊設計、系統(tǒng)體系結構構建。6月27日6月30日各功能模塊編碼實現(xiàn),系統(tǒng)各功能模塊調試與維護。7月1日7月2日系統(tǒng)功能集成、系統(tǒng)調試與測試,按照模板要求撰寫 課程設計/項目設計報告。7月3日課程設計/項目設計分組答辯,提交課程設計/項目設 計報告以及相關文檔,進行成績評定。指導教師簽名:2014年6月22日成績評定

4、表學生姓名:樊秀琳 學號: 專業(yè): 軟件工程 班級:13級四班類別合計 分值各項 分值評分標準實際得分合計得分平時表現(xiàn)1010按時參加設計指導,無違反紀律情況。完成 情況3020按設計任務書的要求完成了全部任務,能完整演示其設計內容,符合要求。10能對其設計內容進行詳細、完整的介紹,并能就指 導教師提出的問題進行正確的回答。報告X3510報告文字通順,內容翔實,論述充分、完整,立論 正確,結構嚴謹合理;報告字數(shù)符合相關要求,工 整規(guī)范,整齊劃一。5課題背景介紹清楚,綜述分析充分。5設計方案合理、可行,論證嚴謹,邏輯性強,具有 說服力。5符號統(tǒng)一;圖表完備、符合規(guī)范要求。5能對整個設計過程進行全

5、面的總結,得出有價值的結論或結果。5參考文獻數(shù)量在2篇以上,格式符合要求,在正文 中正確引用。答辯情況2510在規(guī)定時間內能就所設計的內容進行闡述,言簡意明,重點突出,論點正確,條理清晰。15在規(guī)定時間內能準確、完整、流利地回答教師所提 出的問題。總評成績:分指導教師: (簽字) 日期:2014年7月日摘要摘要:掃雷游戲是 Windows操作系統(tǒng)自帶的一款小游戲,在過去的幾年里,Windows操作系統(tǒng)歷經(jīng)數(shù)次換代更新,變得越來越龐大、復雜,功能也越來越強大,但是這款小游戲依然保持原來的容貌,可見這款小游戲受到越來越多人的喜愛。掃雷游戲是比較經(jīng)典的一款小游戲,實現(xiàn)它的方法很多,可以用很多不同算法

6、設計和語言實現(xiàn),如 C,C+,VB,JAVA等。我利用eclipse編寫了與它功能相似的掃雷游戲,寓學于樂。程序的功能是隨機生成地雷數(shù),通過鼠標操作玩游戲,不接受鍵盤,按任意鍵結束程序。單擊屏幕上的笑臉可以重新開始游戲。所有地雷標出后勝利,當鼠標左鍵單擊到地雷時提示游戲失敗。其功能類似于 Windows操作系統(tǒng)自帶的掃雷游戲。論文首先介紹了進行該游戲課程設計的目的,然后是任務描述和設計的相關要求,最后是最重要的需求分析和設計方案。重點介紹了在游戲過程中各事件的處理,其中又以鼠標事件和清除未靠近地雷區(qū)方塊這兩方面最為最要,鼠標事件是利用鼠標所發(fā)出的信息了解用戶的意圖,進而做出相對應的動作。清除未

7、靠近地雷區(qū)的方塊較為復雜。關鍵詞: 算法設計;事件;Eclipse摘 要 第一章課題背景(或緒論、概述) 0設計目的 0基本理論依據(jù)和主要工作內容 0第二章設計簡介及設計方案論述 1功能需求 1功能模塊 1第三章詳細設計 1總體設計 1 錯 誤 ! 未定義書簽。主要技術 2第四章 設計結果及分析 3設計結果截圖 3參考文獻 3源代碼 4第一章課題背景(或緒論、概述)設計目的1 使學生更深入地理解和掌握該課程中的有關基本概念,程序設計思想和方法。2培養(yǎng)學生綜合運用所學知識獨立完成課題的能力。3培養(yǎng)學生勇于探索、嚴謹推理、實事求是、有錯必改,用實踐來檢驗理論,全方位考慮問題等科學技術人員應具有的素

8、質。4提高學生對工作認真負責、一絲不茍,對同學團結友愛,協(xié)作攻關的基本素質。5培養(yǎng)學生從資料文獻、科學實驗中獲得知識的能力,提高學生從別人經(jīng)驗中找到解決問題的新途徑的悟性,初步培養(yǎng)工程意識和創(chuàng)新能力。6對學生掌握知識的深度、運用理論去處理問題的能力、實驗能力、課程設計能力、書面及口頭表達能力進行考核?;纠碚撘罁?jù)和主要工作內容掃雷游戲主要用了一個10行10列的二維數(shù)組,剛開始利用random隨機布 雷。每一個程序最主要的是算法。掃雷游戲算法的重點是一開始統(tǒng)計好每個格子周圍有多少雷,當鼠標左鍵點在格子上時做出判斷,如果周圍8 個格子有雷則顯示出雷數(shù),如果沒有雷則顯示空白格(在四個角的格子顯示周圍

9、3 個格子,其它邊緣的格子顯示周圍5 個的狀態(tài)), 我們在主函數(shù)中用兩個for 語句來判斷周圍雷數(shù)。我們還加了鼠標處理函數(shù)。如果格子上有雷則調用函數(shù)actionpeformed () ,顯示“你踩到地雷了,按確定重來 ", " 踩到地雷”, 游戲結束。若所有的雷都標出,且所有的格子都處理過,則調用函數(shù)isWin () ,顯示“您挖完了所有的雷,您勝利了 !", " 勝利 ",游戲結束。游戲結束后,按任意鍵出去。第二章設計簡介及設計方案論述功能需求1. 本游戲結構較為簡單,可以自行設置設置雷數(shù),以此來控制掃雷的難度系數(shù);2. 提示區(qū)下方將顯示總雷

10、數(shù),并可以通過點擊右鍵來標明疑似有雷的區(qū)域的數(shù)目;3. 單擊鼠標左鍵于未知區(qū)域, 如果未知區(qū)域有雷, 游戲提示: “你踩到地雷了, 按確定重來”; 如果沒有雷, 當需要檢測的單元格本身無地雷的情況下, 統(tǒng)計周圍的地雷個數(shù),則顯示周圍雷數(shù), 然后判斷是否挖完所有的雷;如果周圍沒雷,則再查看周圍八個區(qū)域是否有雷直到有雷為止,并顯示周圍雷的數(shù)目;4. 單擊鼠標右鍵于未知區(qū)域,則顯示F,將其標識有雷。在該位置再次單擊右鍵則視為不確定,顯示 Q單擊第三次,取消設置,Q消失;5. 如果該數(shù)字方塊周圍地雷已經(jīng)完全標識出,雙擊該數(shù)字所在方塊,將快速翻開所有周圍不是地雷的方塊,并顯示,直到有雷為止;6. 將雷全

11、部掃完后, 會出現(xiàn)一個提示框,顯示游戲勝利。功能模塊( 1)游戲界面( 2)布雷( 3)鼠標事件( 4)地雷判斷( 5)游戲勝利(結束)( 6)游戲失敗(結束)( 7)游戲設置(地雷數(shù)量)第三章詳細設計總體設計游戲的操作方面主要以鼠標為主,當鼠標左鍵單擊方塊時即表示打開方塊,當鼠標右鍵單擊方塊時即表示標識或疑似地雷,反復單擊右鍵則方塊會以“未標識-標識-疑似”三者關系不斷循環(huán)。游戲者可以通過地雷區(qū)內的數(shù)字提示了解以數(shù)字為中心的其周邊八個方格內所含的地雷數(shù),假若打開的方塊顯示數(shù) 字“3”,則表示以其為中心的周邊方塊內藏有 3個地雷。當打開的方塊不是地雷,且周邊八個方塊也都沒有地雷時,方塊會以被打

12、 開方塊的八個方向將空白方塊打開。系統(tǒng)的總體設計是對整個系統(tǒng)的結構化設計,包括系統(tǒng)基本功能的設計、 系統(tǒng)流程的設計和各個功能模塊的設計等。掃雷游戲主界面主要技術設置地1 .鼠標消息處actionPerformed(ActionEvent e) mouseClicked(MouseEvent e)2 .分模塊實現(xiàn)較復雜的程序設計設置地雷數(shù)布雷計算周圍雷數(shù)判斷是否挖完所有雷3 .掃雷游戲算法開始統(tǒng)計好每個格子周圍有多少雷,當鼠標左鍵點在格子上時做出判斷,如果周圍8個格子有雷則顯示出雷數(shù),如果沒有雷則顯示空白格(在四個角的格子顯示周圍3個格子,其它邊緣的格子顯示周圍5個的狀態(tài)),我們在主函數(shù) 中用兩

13、個for語句來判斷周圍雷數(shù)。我們還加了鼠標處理函數(shù)。第四章設計結果及分析設計結果截圖圖4-1圖4-2總結主要包括:正文(小四號字 宋體)(1)對設計工作及所設計的系統(tǒng)特性的概括和總結,所采用的關鍵技術及算法介紹,運行結果分析評價及效率評價,系統(tǒng)還有待于改進的方面等等;(2)本次課程設計/項目設計的感悟等。參考文獻米用順序編碼制格式著錄。主要責任者,二名以內的,全部列出;超過三名時,后面加“等.”字樣 參考文獻類型及標識:參考文獻奧 型論文 集報紙文 章期刊文 章學位論 文報告標準專 利文獻類型標 識MCNJDRSP其他未作說明的文獻,建議采用單字母“ Z”。參考文獻編排格式(注意嚴格使用格式中

14、的符號,特別注意區(qū)分“,”與“.”):(1)對于專著、論文集、學位論文、報告,格式如下:序號主要責任者.文獻題名X.出版地:出版者,出版年.起止頁碼.其中X代表文獻類型標識。(2)對于期刊文章,格式如下:序號主要責任者.文獻題名J.刊名,年,卷(期):起止頁碼.(3)對于報紙文章,格式如下:序號主要責任者.文獻題名N .報紙名,出版日期(版次).(4)對于國際、國家標準,格式如下:序號標準編號,標準名稱S.(5)對于專利,格式如下:序號專利所有者.專利題名P.專利國別:專利號,出版日期.(6)對于未定義類型的文獻序號主要責任者.文獻題名Z.出版地:出版者,出版年.例:(1)參考文獻為書籍的,格

15、式如下:1胡克.常用不等式M.武漢:武漢大學出版社,2003.(2)參考文獻為期刊上的文章的,格式如下:1孟志青.時態(tài)數(shù)據(jù)采掘中的時態(tài)型與時間粒度研究,湘潭大學學報(自然科學版)J. 2000, 22(3): 1-4.注:參考文獻中的標點符號一律采用英文格式下的。源代碼import .*;import .*;public class Frameextends JFrame JTextField text;JLabel nowBomb, setBomb;int BombNum, BlockNum; etSize(10, 10);bombButtonij.setFont(newFont("

16、;",14);etForeground; bombButtonij.addMouseListener(new Bomb_mouseAdapter(this);bombButtonij.addActionListener(new Bomb_actionAdapter(this);(bombButtonij);startBomb();/* 開始按鈕*/public void start_actionPerformed(ActionEvent e) int num=().trim();if (num >= 5 && num < 50) BombNum = num

17、;startBomb();else if (num < 5) (null, " 您設置的地雷數(shù)太少了, 請重設 !", " 錯誤 ", num=10; BombNum = num;else (null, " 您設置的地雷數(shù)太多了, 請重設 !", " 錯誤 ",;num=10;BombNum = num;/* 開始 , 布雷 */public void startBomb() (" 當前雷數(shù)" + " : " + BombNum);for (int i = 0; i &

18、lt; (int) (BlockNum); i+) for (int j = 0; j < (int) (BlockNum); j+) bombButtonij.isBomb = false; bombButtonij.isClicked = false; bombButtonij.isRight = false; bombButtonij.BombFlag = 0;bombButtonij.BombRoundCount = 9; bombButtonij.setEnabled(true);bombButtonij.setText("");bombButtonij.s

19、etFont(newFont("",14);etForeground;rightBomb = 0;restBomb = BombNum;restBlock = BlockNum - BombNum;for (int i = 0; i < BombNum; ) int x = (int) () * (int) (BlockNum) - 1);int y = (int) () * (int) (BlockNum) - 1);if (bombButtonxy.isBomb != true) bombButtonxy.isBomb = true;i+;CountRoundBo

20、mb();/* 計算方塊周圍雷數(shù)*/public void CountRoundBomb() for (int i = 0; i < (int) (BlockNum); i+) for (int j = 0; j < (int) (BlockNum); j+) int count = 0;sBomb != true) for (int x = i - 1; x < i + 2; x+) for (int y = j - 1; y < j + 2; y+) if( (x >= 0) && (y >= 0) &&(x < (

21、 (int) (BlockNum)&& (y < ( (int) (BlockNum) if (bombButtonxy.isBomb = true) count+;bombButtonij.BombRoundCount = count;/* 是否挖完了所有的雷*/public void isWin() restBlock = BlockNum - BombNum;for (int i = 0; i < (int) (BlockNum); i+) for (int j = 0; j < (int) (BlockNum); j+) if (bombButtoni

22、j.isClicked = true) restBlock-;if (rightBomb = BombNum | restBlock = 0) (this, " 您挖完了所有的雷,您勝利了!", " 勝利 ",;startBomb();/* 當選中的位置為空, 則翻開周圍的地圖* */public void isNull(Bomb ClickedButton) int i, j;i = ;j = ;for (int x = i - 1; x < i + 2; x+) for (int y = j - 1; y < j + 2; y+) if

23、( ( (x != i) | (y != j) && (x >= 0) && (y >= 0)&& (x < ( (int) (BlockNum)&& (y < ( (int) (BlockNum) if (bombButtonxy.isBomb = false&& bombButtonxy.isClicked = false&& bombButtonxy.isRight = false) turn(bombButtonxy);/* 翻開 */public void turn

24、(Bomb ClickedButton) (false);= true;if > 0) + "");else isNull(ClickedButton);/* 左鍵點擊*/public void actionPerformed(ActionEvent e) if ( ( (Bomb) ().isClicked = false&& ( (Bomb) ().isRight = false) if ( ( (Bomb) ().isBomb = false) turn( ( (Bomb) ();isWin();else for (int i = 0; i &l

25、t; (int) (BlockNum); i+) for (int j = 0; j < (int) (BlockNum); j+) if (bombButtonij.isBomb = true) bombButtonij.setText("b");( (Bomb) ().setForeground;( (Bomb) ().setFont(new Font("", , 20);( (Bomb) ().setText("X");(this, " 你踩到地雷了,按確定重來", " 踩到地雷 "

26、, 2);startBomb();/* 右鍵點擊*/public void mouseClicked(MouseEvent e) Bomb bombSource = (Bomb) ();boolean right = (e);if ( (right = true) && = false) = + 1) % 3;if = 1) if (restBomb > 0) ;("F");= true;restBomb-;else = 0;else if = 2) restBomb+;("Q");= false;else ("");if = true) if = 1) rightBomb+;else if = 2) rightBomb-;(" 當前雷數(shù)" + ":" + restBomb);isWin();public st

溫馨提示

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

最新文檔

評論

0/150

提交評論