掃雷的課程設(shè)計(jì)報(bào)告_第1頁(yè)
掃雷的課程設(shè)計(jì)報(bào)告_第2頁(yè)
掃雷的課程設(shè)計(jì)報(bào)告_第3頁(yè)
掃雷的課程設(shè)計(jì)報(bào)告_第4頁(yè)
掃雷的課程設(shè)計(jì)報(bào)告_第5頁(yè)
已閱讀5頁(yè),還剩32頁(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)介

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

2、表現(xiàn)成績(jī)低于6分的學(xué)生,取消答辯資格,其本項(xiàng)綜合設(shè)計(jì)成績(jī)按不及格處理。信息工程學(xué)院課程設(shè)計(jì)任務(wù)書學(xué)生姓名樊琳學(xué)號(hào)1402: 30407 V業(yè)班級(jí)軟件工程13竊四班設(shè)計(jì)題目實(shí)見一個(gè)N*M的掃雷游戲內(nèi)容概要:(包含要求采用的設(shè)計(jì)環(huán)境或開發(fā)環(huán)境(軟、硬環(huán)境),采用的關(guān)鍵技術(shù)等) ,系統(tǒng)/設(shè)計(jì)所包含的基本功能等)程序在eclipse文獻(xiàn)資料:張躍平 JAVA2實(shí)用教程(第三版)M 清華大學(xué)出版社,2006 張躍平.JAVA課程設(shè)計(jì)(第二版)M 清華大學(xué)出版社,2009 葉核亞數(shù)據(jù)結(jié)構(gòu)(Java)(第二版)M電子工業(yè)大學(xué)出版社,2008設(shè)計(jì)要求:(設(shè)計(jì)所必須達(dá)到的基本功能要求、文檔格式要求及其他等)工作

3、期限:設(shè)計(jì)工作自2015年6月22日至201年7月3日止。指導(dǎo)教師:院長(zhǎng):日期:2015年6月22日學(xué)生姓名:樊秀琳學(xué)號(hào):1402130407專業(yè):軟件工程班級(jí):13級(jí)四班起止日期內(nèi)容備注6月22日6月23日行!J下任務(wù)書;收集、閱讀、整理相關(guān)參考文獻(xiàn),并進(jìn) 日納和概括總結(jié),完成項(xiàng)目/任務(wù)背景介紹部分文 字內(nèi)容。6月24日6月26日系統(tǒng)功能設(shè)計(jì)和模塊設(shè)計(jì)、系統(tǒng)體系結(jié)構(gòu)構(gòu)建。6月27日6月30日各功能模塊編碼實(shí)現(xiàn),系統(tǒng)各功能模塊調(diào)試與 維護(hù)7月1日7月2日藥統(tǒng)功能集成、系統(tǒng)調(diào)試與測(cè)試,按照模板要 求撰7月3日厶/味枉哎U / T貝n lie N Jlx- 口。課程設(shè)計(jì)/項(xiàng)目設(shè)計(jì)分組答辯,提交課程

4、設(shè)計(jì)/項(xiàng)目 設(shè)計(jì)根告W75相關(guān)文檔,講行成締評(píng)宗C指導(dǎo)教師簽名:2014年6月22日成績(jī)?cè)u(píng)定表學(xué)生姓名:樊秀琳學(xué)號(hào):1402130407專業(yè):軟件工程班級(jí):13級(jí)四班類別平時(shí)表現(xiàn)完成情況報(bào)告質(zhì)量答辯情況合計(jì)分值各項(xiàng)分值評(píng)分標(biāo)準(zhǔn)實(shí)際得分合計(jì)得分1010按時(shí)參加設(shè)計(jì)指導(dǎo),無(wú)違反紀(jì)律情況。2010103525總評(píng)成績(jī):分鰲議十任務(wù)書的要求兀成了金部任務(wù)'冃匕兀 示其設(shè)計(jì)內(nèi)容,符合要求。能對(duì)其設(shè)計(jì)內(nèi)容進(jìn)行詳細(xì)、完整的介紹,并 能就指導(dǎo)教師提出的問(wèn)題進(jìn)行正確的回答。報(bào)告文字通順,內(nèi)容翔實(shí),論述充分、完整,立論止確,結(jié)構(gòu)嚴(yán)謹(jǐn)合理;報(bào)告寧數(shù)符合相關(guān)要求 ,工整規(guī)范,整齊劃一。5課述背景介紹清楚,綜述

5、分析充分。設(shè)計(jì)方眾合理L甲論證嚴(yán)誦邏輯性 強(qiáng),具有說(shuō)服力。5符#統(tǒng)一;圖表完備、符合規(guī)范要求。10能對(duì)整個(gè)設(shè)計(jì)過(guò)程進(jìn)行全而的總結(jié),得出有 價(jià)值的結(jié)論或結(jié)果。參考文獻(xiàn)數(shù)量在2篇以上,格式符合要求,在正 文中正確弓用。在規(guī)定時(shí)間內(nèi)能就所設(shè)計(jì)的內(nèi)容進(jìn)行闡述,言簡(jiǎn)意明,重點(diǎn)突岀,論點(diǎn)正確,條理清晰。15在規(guī)定時(shí)間內(nèi)能準(zhǔn)確、完整、流利地回答教師所提出的問(wèn)題。教師i (簽宇)日期:2014年7月3日摘要摘要: 掃雷游戲是Windows操作系統(tǒng)自帶的一款小游戲,在過(guò)去的幾年里Windows操作系統(tǒng)歷經(jīng)數(shù)次換代更新,變得越來(lái)越龐大、復(fù)雜,功能也越來(lái)越強(qiáng)大,但是這款小游戲 依然保持原來(lái)的容貌,可見這款小游戲受到

6、越來(lái)越多人的喜愛。掃雷游戲是比較經(jīng)典的 一款小游戲,實(shí)現(xiàn)它的方法很多,可以用很多不同算法設(shè)計(jì)和語(yǔ)言實(shí)現(xiàn),如C, C+, VB, JAVA等。我利用eclipse編寫了與它功能相似的掃雷游戲,寓學(xué)于樂(lè)。程序的功能是隨機(jī)生成地雷數(shù),通過(guò)鼠標(biāo)操作玩游戲,不接受鍵盤,按任意鍵結(jié)束程序。單擊屏幕上的笑臉可以重新開始游戲。所有地雷標(biāo)出后勝利,當(dāng)鼠標(biāo)左鍵單擊 到地雷時(shí)提示游戲失敗。其功能類似于Windows操作系統(tǒng)自帶的掃雷游戲。論文首先介 紹了進(jìn)行該游戲課程設(shè)計(jì)的目的,然后是任務(wù)描述和設(shè)計(jì)的相關(guān)要求,最后是最重要的 需求分析和設(shè)計(jì)方案。重點(diǎn)介紹了在游戲過(guò)程中各事件的處理,其中又以鼠標(biāo)事件和清 除未靠近地雷

7、區(qū)方塊這兩方而最為最要,鼠標(biāo)事件是利用鼠標(biāo)所發(fā)出的信息了解用戶的 意圖,進(jìn)而做岀相對(duì)應(yīng)的動(dòng)作。清除未靠近地雷區(qū)的方塊較為復(fù)雜。關(guān)鍵詞:算法設(shè)計(jì);事件;EclipseII西安文理學(xué)院信息工程學(xué)院課程設(shè)計(jì)報(bào)告冃錄II摘要 第一章課題背景(或緒論、概述)1.1設(shè)計(jì)目的1. 2基本理論依據(jù)和主要工作內(nèi)容第二章設(shè)計(jì)簡(jiǎn)介及設(shè)計(jì)方案論述2. 1功能需求2. 2功能模塊第三章詳細(xì)設(shè)計(jì)3. 1總體設(shè)計(jì)3. 1. 1總體功能圖3. 1主要技術(shù)第四章設(shè)計(jì)結(jié)果及分析4. 1設(shè)計(jì)結(jié)果截圖參考文獻(xiàn) 源代碼第一章課題背景(或緒論、概述)1.1設(shè)計(jì)冃的1. 使學(xué)生更深入地理解和掌握該課程中的有關(guān)基本概念,程序設(shè)計(jì)思想和方法。

8、2培養(yǎng)學(xué)生綜合運(yùn)用所學(xué)知識(shí)獨(dú)立完成課題的能力。3培養(yǎng)學(xué)生勇于探索、嚴(yán)謹(jǐn)推理、實(shí)事求是、有錯(cuò)必改,用實(shí)踐來(lái)檢驗(yàn)理論,全方位考慮問(wèn)題等科學(xué)技術(shù)人員應(yīng)具有的素質(zhì)。4. 提高學(xué)生對(duì)工作認(rèn)真負(fù)責(zé)、一絲不茍,對(duì)同學(xué)團(tuán)結(jié)友愛,協(xié)作攻關(guān)的基本素質(zhì)。5培養(yǎng)學(xué)生從資料文獻(xiàn)、科學(xué)實(shí)驗(yàn)中獲得知識(shí)的能力,提高學(xué)生從別人經(jīng)驗(yàn)中找到解決問(wèn)題的新途徑的悟性,初步培養(yǎng)工程意識(shí)和創(chuàng)新能力。6.對(duì)學(xué)生掌握知識(shí)的深度、運(yùn)用理論去處理問(wèn)題的能力、實(shí)驗(yàn)?zāi)芰?、課程設(shè)計(jì)能力、書而及口頭表達(dá)能力進(jìn)行考核。1. 2基本理論依據(jù)和主要工作內(nèi)容掃雷游戲主要用了一個(gè)10行10列的二維數(shù)組,剛開始利用random隨機(jī)布雷。每一個(gè)程序最主要的是算法。掃雷

9、游戲算法的重點(diǎn)是一開始統(tǒng)計(jì)好每個(gè)格子周圍有多少雷,當(dāng)鼠標(biāo)左鍵點(diǎn)在格子上時(shí)做出判斷,如果周圍8個(gè)格子有雷 則顯示出雷數(shù),如果沒(méi)有雷則顯示空白格(在四個(gè)角的格子顯示周圍3個(gè)格子, 其它邊緣的格子顯示周圍5個(gè)的狀態(tài)),我們?cè)谥骱瘮?shù)中用兩個(gè)for語(yǔ)句來(lái)判斷 周圍雷數(shù)。我們還加了鼠標(biāo)處理函數(shù)。如果格子上有雷則調(diào)用函數(shù)actionpeformedO ,顯示“你踩到地雷了,按確定重來(lái)"踩到地雷”,游戲結(jié)束。若所有的雷都標(biāo)岀,且所有的格子都處理過(guò), 則調(diào)用函數(shù)iswino,顯示“您挖完了所有的雷,您勝利了r,"勝利",游戲 結(jié)束。游戲結(jié)束后,按任意鍵出去。西安文理學(xué)院信息工程學(xué)院

10、課程設(shè)計(jì)報(bào)告第二章設(shè)計(jì)簡(jiǎn)介及設(shè)計(jì)方案論述2. 1功能需求1 本游戲結(jié)構(gòu)較為簡(jiǎn)單,可以自行設(shè)置設(shè)置雷數(shù),以此來(lái)控制掃雷的難度系數(shù);2. 提示區(qū)下方將顯示總雷數(shù),并可以通過(guò)點(diǎn)擊右鍵來(lái)標(biāo)明疑似有雷的區(qū)域的數(shù)目;3. 單擊鼠標(biāo)左鍵于未知區(qū)域,如果未知區(qū)域有雷,游戲提示:“你踩到地雷了,按確定重來(lái)”;如果沒(méi)有雷,當(dāng)需要檢測(cè)的單元格本身無(wú)地雷的情況下,統(tǒng)計(jì)周圍的地雷個(gè)數(shù),則顯示周圍雷數(shù),然后判斷是否挖完所有的雷;如果周圍沒(méi)雷,則再查看周圍八個(gè)區(qū)域是否有雷直到有雷為止,并顯示周圍雷的數(shù)目;4單擊鼠標(biāo)右鍵于未知區(qū)域,則顯示F,將其標(biāo)識(shí)有雷。在該位置再次單擊右鍵則視為不確定,顯示Q單擊第三次,取消設(shè)置,Q消失;

11、5如果該數(shù)字方塊周圍地雷已經(jīng)完全標(biāo)識(shí)出,雙擊該數(shù)字所在方塊,將快速翻開所有周圍不是地雷的方塊,并顯示,直到有雷為止;6將雷全部掃完后,會(huì)出現(xiàn)一個(gè)提示框,顯示游戲勝利。2. 2功能模塊(1)游戲界而布雷 鼠標(biāo)事件地雷判斷游戲勝利(結(jié)束)游戲失?。ńY(jié)束)游戲設(shè)置(地雷數(shù)量)第三章詳細(xì)設(shè)計(jì)3. 1總體設(shè)計(jì)游戲的操作方而主要以鼠標(biāo)為主,當(dāng)鼠標(biāo)左鍵單擊方塊時(shí)即表示打開方塊,當(dāng)鼠標(biāo)右鍵單擊方塊時(shí)即表示標(biāo)識(shí)或疑似地雷,反復(fù)單擊右鍵則方塊會(huì)以“未 標(biāo)識(shí)f標(biāo)識(shí)一疑似”三者關(guān)系不斷循環(huán)。游戲者可以通過(guò)地雷區(qū)內(nèi)的數(shù)字提示 了解以數(shù)字為中心的其周邊八個(gè)方格內(nèi)所含的地雷數(shù),假若打開的方塊顯示數(shù) 字“3” ,貝9表示以其

12、為中心的周邊方塊內(nèi)藏有3個(gè)地雷。當(dāng)打開的方塊不是地雷,且周邊八個(gè)方塊也都沒(méi)有地雷時(shí),方塊會(huì)以被打開方塊的八個(gè)方向?qū)⒖瞻追綁K打開。系統(tǒng)的總體設(shè)計(jì)是對(duì)整個(gè)系統(tǒng)的結(jié)構(gòu)化設(shè)計(jì),包括系統(tǒng)基本功能的設(shè)計(jì)、系統(tǒng)流程的設(shè)計(jì)和各個(gè)功能模塊的設(shè)計(jì)等。3. 1. 1總體功能圖四安文理學(xué)院信息工程學(xué)院課程設(shè)計(jì)報(bào)告3. 1主要技術(shù)1. 鼠標(biāo)消息處理函數(shù);actionPerformed(ActionEvente) mouseClicked(MouseEvente)2. 分模塊實(shí)現(xiàn)較復(fù)雜的程序設(shè)計(jì) 設(shè)置地雷數(shù) 布雷 計(jì)算周圍雷數(shù) 判斷是否挖完所有雷3. 掃雷游戲算法開始統(tǒng)計(jì)好每個(gè)格子周圍有多少雷,當(dāng)鼠標(biāo)左鍵點(diǎn)在格子上時(shí)做岀

13、判斷,如果周圍8個(gè)格子有雷則顯示出雷數(shù),如果沒(méi)有雷則顯示空白格(在四個(gè)角的格子顯示周圍3個(gè)格子,其它邊緣的格子顯示周圍5個(gè)的狀態(tài)),我們?cè)谥骱瘮?shù)中用兩個(gè)for語(yǔ)句來(lái)判斷周圍雷數(shù)。我們還加了鼠標(biāo)處理函數(shù)。741設(shè)計(jì)結(jié)果截圖第四章設(shè)計(jì)結(jié)果及分析圖4-13b2b1JTAfrJTAfr4-2bb總結(jié)(1) 算法介紹,(2)主要包括:正文(小四號(hào)字宋體)對(duì)設(shè)計(jì)工作及所設(shè)計(jì)的系統(tǒng)特性的概括和總結(jié),所釆用的關(guān)鍵技術(shù)及 運(yùn)行結(jié)果分析評(píng)價(jià)及效率評(píng)價(jià),系統(tǒng)還有待于改進(jìn)的方而等等; 本次課程設(shè)計(jì)/項(xiàng)目設(shè)計(jì)的感悟等。西安文理學(xué)院信息工程學(xué)院課程設(shè)計(jì)報(bào)告參考文獻(xiàn)參考文獻(xiàn)采用順序編碼制格式著錄。主要責(zé)任者,三名以內(nèi)的,全

14、部列出; 超過(guò)三名時(shí),后而加“等.”字樣。參考文獻(xiàn)類型及標(biāo)識(shí):參考文獻(xiàn)類 型專著論文集報(bào)紙文期刊文學(xué)位論文報(bào)告標(biāo)準(zhǔn)專利文獻(xiàn)類型標(biāo) 識(shí)MCXJIRSP其他未作說(shuō)明的文獻(xiàn),建議采用單字母“Z”。參考文獻(xiàn)編排格式(注意嚴(yán)格使用格式中的符號(hào),特別注意區(qū)分“,”與(1)對(duì)于專著、論文集、學(xué)位論文、報(bào)告,格式如下:序號(hào)主要責(zé)任者.文獻(xiàn)題名X.出版地:出版者,出版年.起止頁(yè)碼. 其中X代表文獻(xiàn)類型標(biāo)識(shí)。(2)對(duì)于期刊文章,格式如下:序號(hào)主要責(zé)任者.文獻(xiàn)題名刊名,年,卷(期):起止頁(yè)碼.(3)對(duì)于報(bào)紙文章,格式如下:序號(hào)主要責(zé)任者.文獻(xiàn)題名N.報(bào)紙名,出版日期(版次).(4)對(duì)于國(guó)際、國(guó)家標(biāo)準(zhǔn),格式如下:序號(hào)

15、標(biāo)準(zhǔn)編號(hào),標(biāo)準(zhǔn)名稱S.(5)對(duì)于專利,格式如下:序號(hào)專利所有者.專利題名P專利國(guó)別:專利號(hào),出版日期.(6)對(duì)于未定義類型的文獻(xiàn)序號(hào)主要責(zé)任者.文獻(xiàn)題名Z.出版地:出版者,出版年.例:(1)參考文獻(xiàn)為書籍的,格式如下:1胡克常用不等式M武漢:武漢大學(xué)出版社,2003.(2)參考文獻(xiàn)為期刊上的文章的,格式如下:1孟志青時(shí)態(tài)數(shù)據(jù)采掘中的時(shí)態(tài)型與時(shí)間粒度研究,湘潭大學(xué)學(xué)報(bào)(自然科 學(xué)版)JL 2000, 22 (3): 1-4.注:參考文獻(xiàn)中的標(biāo)點(diǎn)符號(hào)一律采用英文格式下的。四安文理學(xué)院信息工程學(xué)院課程設(shè)計(jì)報(bào)告源代碼importjava. awt. *;importjava. awt. event.

16、*;importjavax. swing. *;publicclassFrameextendsJFrameJTextFieldtext:JLabelnowBomb, setBomb: intBombNum, BlockNum: /當(dāng)前雷數(shù),當(dāng)前方塊數(shù) intrightBomb, restBomb, restBlock;/找到的地雷數(shù),剩余雷數(shù),剩余方塊數(shù)JButtonstart=newJButton (開始);JPanelMenuPamel=newJPanel();JPanelbombPanel=newJPanel();Bomb bomb But ton:JPanelc:BorderLayou

17、tborderLayoutl=newBorderLayout():/BorderLayout是frame和Jframe的默認(rèn)布局,是邊界布局管理器GridLayoutgridLayoutl=newGridLayout () ;/表格布局管理器PublicFrame()try /try代碼塊中編寫可能發(fā)生異常的java語(yǔ)句,catch代碼塊中編寫針對(duì)異常進(jìn)行的處理的代碼。setDefaultCloseOperation(EXIT_ON_CLOSE);jblnit0;catch(Exceptionexception) exception.printStackTrace ();/設(shè)置界面privat

18、evoidjblnit()throwsExceptionc=(JPanel)getContentPane();setTitleC掃雷); c. setBackground(Color. WHITE);MenuPamel. setBackground(Color* GRAY): c. setLayout(borderLayoutl);setSize(newDimension(600, 600);setResizable(false);BlockNum=144:BombNum=10;text二newJTextFieldClO", 3): nowBomb=newJLabe 1 (當(dāng)前雷數(shù)+

19、 :+BonibNuni);setBomb=newJLabel ("設(shè)置地雷數(shù));start. addActionListener(newFramel_start_actionAdapter(this);MenuPamel. add(setBomb);MenuPamel. add(text);MenuPamel. add(start);MenuPamel. add(nowBomb);c. add(MenuPamel, java* awt. BorderLayout> SOUTH);bombPanel. setLayout (gridLayoutl) ;/設(shè)置窗體 gridLay

20、outl. setColumns(int)Math> sqrt(BlockNum);gridLayoutl. setRows (int)Math> sqrt (BlockNum) ;/指定行數(shù)bombButton=newBomb(int)Math* sqrt(BlockNum)(int)Math< sqrt (BlockNum);for (inti二0;i(int)Math, sqrt(BlockNum);i+) for(intj=0:j<(int)Math* sqrt(BlockNum);j+)bombButtoni j=newBonib(i, j): /bombBu

21、ttonij. setSize(10, 10): bombButtonijL setFont(newFontFont. PLAIN, 14);/設(shè)置字體大小bombButtonijL setForeground(Color* white);bombButtonijL addMouseListener(newBonib_mouseAdapter (this);bombButtoni jL addActionListener (newBomb_actionAdapter (this);bombPaneL add(bombButtonij);c. add(bombPanel, java* dwt.

22、BorderLayout> CENTER);startBombO ;/*開始按鈕*/publicvoidstart_actionPerformed(ActionEvente)intnum=Integer< parseint (text. getText (). trimO);if(num>=5&&num<50) BombNum=num;StartBombO ;elseif(num<5)JOptionPane. showMessageDialog(null,"您設(shè)置的地雷數(shù)太少了,JOptionPane* ERROR_MESSAGE);nu

23、m二10;BombNum=num;elseJOptionPane. showMessageDialog(null, 您設(shè)置的地雷數(shù)太多了,JOptionPane* ERROR_MESSAGE);num=10:BombNum=num;/*開始,布雷*/publicvoidstartBomb() nowBomb. setTextC當(dāng)前雷數(shù)+BonibNuni);for(inti=0:i<(int)Math> sqrt(BlockNum);i+)for(intj=0:j<(int)Math* sqrt(BlockNum);j+)17bombButtonij.isBomb=false

24、:bombButtonibombButtonibombButtonibombButtonibombButtonibombButtonibombButtonijjjjjjj.isClicked=false;.isRight=false;.BombFlag=0:.BombRoundCount=9;.setEnabled(true):.setFont (newFont(",F(xiàn)ont. PLAIN, 14) ;/設(shè)置字體大小bombButtonij, setForeground(Color* BLUE);rightBonib=0;restBomb=BombNum;restBlock二Bloc

25、kNumBombNum;for(inti=0:i<BombNum:)intx=(int) (Math* random()*(int) (Math, sqrt (BlockNum)- inty=(int) (Math, random()*(int) (Math, sqrt (BlockNum)- if(bombButtonxy isBomb!=true)bombButtonxy, isBomb=true;i卄;CountRoundBomb();/*計(jì)算方塊周圍雷數(shù)*/publicvoidCountRoundBombO for(inti=0:i<(int)Math, sqrt(Bloc

26、kNum);i+)for(intj=0:j<(int)Math, sqrt(BlockNum):j+)intcount=0;/當(dāng)需要檢測(cè)的單元格本身無(wú)地雷的情況下,統(tǒng)計(jì)周圍的地雷個(gè)if(bombButtonij isBomb!=true)for (intx=iT ; x<i+2; x+) for(inty=j-l;y<j+2;y+) if(x>=0)&&(y>=0)&&(x<(int)Math, sqrt (BlockNum)&&(y<(int)Math> sqrt(BlockNum) if (bo

27、mbButtonx y isBombtrue) count+:bombButtonij BombRoundCount=count:/*是否挖完了所有的雷*/publicvoidisWinO restBlock=BlockNum-BombNum: for (inti二0;i< (int)Math, sqrt(BlockNum);i+)for(intj=0;j<(int) Math, sqrt(BlockNum);j+)if(bombButtonij isClicked=true) restBlockif(rightBomb=BombNum restBlock=0) JOptionPa

28、ne. showMessageDialog(this, 您挖完了所有的雷,您勝JOptionPane. INFORMATION_MESSAGE);startBomb ();/*當(dāng)選中的位置為空,則翻開周圍的地圖*/PublicvoidisNull(BombClickedButton)inti, j: i=ClickedButton num_x: j=ClickedButton num_y: for(intx=i-l;x<i+2;x+) for(inty=j-1:y<j+2:y+) if (x!二i) ; (y!=j)&&(x>=0)&&(y&g

29、t;=0)&& (x< (int)Math* sqrt(BlockNum) && (y< (int)Math* sqrt(BlockNum)if (bombButtonx y isBonib=false&&bombButtonx y. isClickedfalse&&bombButtonx y isRightfalse) turn(bombButtonxy);/*翻開*/Publicvoidturn(BonibClickedButton) ClickedButton. setEnabled (false);Clicke

30、dButton. isClicked=true;if(ClickedButton* BombRoundCount>0) ClickedButton* setText (ClickedButton< BonibRoundCount+");elseisNull(ClickedButton);/*左鍵點(diǎn)擊*/publicvoidactionPerformed(ActionEvente)if (Bomb) e. getSource () isClickedfalse&&(Bonib)e getSource() isRight=false) if(Bomb)e. g

31、etSource() isBomb=false)turn(Bomb)e. getSource(): isWinO ;elsefor(inti=0:i<(int)Math> sqrt(BlockNum);i+)for(intj=0:j<(int)Math. sqrt(BlockNum):j+)if (bombButtoni j isBombtrue) bombButtoni jL setText ("b");20);(Bomb)e. getSource(). setForeground(Color. RED);(Bomb)e. getSource(). se

32、tFont(newFont("",F(xiàn)ont. BOLD,(Bomb)e. getSource(). setText(X);JOptionPane. showMessageDialog(this, 你踩到地雷了,按確定重來(lái),踩到地雷,2);startBomb ();/*右鍵點(diǎn)擊*/PublicvoidniouseClicked(MouseEvente) BombbombSource=(Bomb)e> getSource();booleanright=SwingUtilities> isRightMouseButton(e);if (right=true)&

33、&(bombSource* isClicked=false) bombSource. BombFlag=(bombSource< BombFlag+l)%3;if (bombSource* BombFlag1) if(restBomb>0)bombSource. setForeground(Color< RED);bombSource. setText("F);bombSource. isRight=true;restBomb;西安文理學(xué)院信息工程學(xué)院課程設(shè)計(jì)報(bào)告elsebombSource. BombFlag=0:elseif(bombSource* BombFlag=2)restBomb+;bombSource. setText("Q");bombSource* isRight=false;elsebombSource. setText();if (bombSource* is

溫馨提示

  • 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)論