版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p> 基于Java掃雷游戲的設(shè)計(jì)與實(shí)現(xiàn) </p><p> 院 系:計(jì)算機(jī)與電子系</p><p> 專 業(yè) 班:計(jì)算機(jī)應(yīng)用技術(shù)0902班</p><p><b> 姓 名: </b></p><p><b> 學(xué) 號: </b></p>&l
2、t;p><b> 指導(dǎo)教師: </b></p><p> 2012 年 6月 </p><p> 基于Java掃雷游戲的設(shè)計(jì)與實(shí)現(xiàn)</p><p> Design and Implementation of Java Minesweeper Game</p><p><b> 摘 要</b
3、></p><p> Java是一種可以撰寫跨平臺應(yīng)用軟件的面向?qū)ο蟮某绦蛟O(shè)計(jì)語言,是由Sun Microsystems公司于1995年5月推出的Java程序設(shè)計(jì)語言和Java平臺的總稱。在硬件或操作系統(tǒng)平臺上安裝一個(gè)Java平臺之后,Java應(yīng)用程序就可運(yùn)行。Java是一種簡單的,面向?qū)ο蟮?,分布式的,解釋型的,健壯安全的,結(jié)構(gòu)中立的,可移植的,性能優(yōu)異、多線程的動(dòng)態(tài)語言。Java 技術(shù)具有卓越的通用性
4、、高效性、平臺移植性和安全性,廣泛應(yīng)用于個(gè)人PC、數(shù)據(jù)中心、游戲控制臺、科學(xué)超級計(jì)算機(jī)、移動(dòng)電話和互聯(lián)網(wǎng),同時(shí)擁有全球最大的開發(fā)者專業(yè)社群。在全球云計(jì)算和移動(dòng)互聯(lián)網(wǎng)的產(chǎn)業(yè)環(huán)境下,Java更具備了顯著優(yōu)勢和廣闊前景。</p><p> 近年來Java作為一種新的語言,以其簡單性,平臺無關(guān)性和可移植性等優(yōu)點(diǎn),得到了廣泛的應(yīng)用,特別是Java與萬維網(wǎng)的完美結(jié)合,使其成為網(wǎng)絡(luò)編程和嵌入式編程領(lǐng)域的首選編程語言。JBui
5、lder是Bonrla公司用于快速開發(fā)Java應(yīng)用的一款優(yōu)秀的集成開發(fā)環(huán)境,它以其友好的的開發(fā)界面,強(qiáng)大的組件支持等優(yōu)點(diǎn),得到了廣大程序員的接受與認(rèn)可。</p><p> 本論文研究的是以Eclipse為開發(fā)環(huán)境,設(shè)計(jì)并開發(fā)一款掃雷游戲,其功能類似于Windows操作系統(tǒng)自帶的掃雷游戲。論文首先介紹了制作游戲的整體思路及整個(gè)游戲設(shè)計(jì)的流程規(guī)劃,然后介紹了雷區(qū)的布置及地雷隨機(jī)產(chǎn)生的實(shí)現(xiàn)方法;重點(diǎn)介紹了在游戲過程中
6、各事件的處理。</p><p> 關(guān)鍵詞:Java 掃雷 Eclipse </p><p><b> Abstract</b></p><p> Java is a cross-platform application software can write object-oriented programming language,
7、the general term of the Java programming language by Sun Microsystems, Inc. in May 1995 and the Java platform. Hardware or operating system platform to install a Java platform, Java applications can run. Java is a simple
8、, object-oriented, distributed, interpreted, robust security, the structure-neutral, portable, high-performance, multithreaded dynamic language. Has excellent versatility, efficiency, pl</p><p> Java in rec
9、ent years as a new language, with its advantages of simplicity, platform independence and portability, get a wide range of applications, especially Java and the World Wide Web perfect binding, making it the network progr
10、amming and embedded programming the preferred programming language. JBuilder is an excellent integrated development environment Borlan company for rapid development of Java applications, and its friendly development inte
11、rface, powerful component supports, etc., has bee</p><p> This thesis is based on the Eclipse development environment, design and develop a mine-sweeping game, its function is similar to minesweeper game th
12、at comes with Windows operating system. The paper first introduces the idea of making the game as a whole and the entire game design process planning, and randomly generated minefield layout and mine; focuses on the hand
13、ling of events in the course of the game.</p><p> Key words: Java Minesweeping Eclipse</p><p><b> 目 錄</b></p><p><b> 摘要Ⅰ</b></p><p> Abs
14、tractⅡ</p><p><b> 緒論1</b></p><p><b> 1 開發(fā)環(huán)境2</b></p><p> 1.1 開發(fā)工具2</p><p> 1.2 應(yīng)用環(huán)境2</p><p> 1.3 編寫意義2</p>&l
15、t;p> 1.4 任務(wù)設(shè)計(jì)內(nèi)容3</p><p> 2 可行性分析和需求分析4</p><p> 2.1 可行性分析4</p><p> 2.2 需求分析5</p><p><b> 3 概要設(shè)計(jì)6</b></p><p><b> 4 詳細(xì)設(shè)計(jì)
16、8</b></p><p> 4.1 MineGame類8</p><p> 4.2 MineArea類9</p><p> 4.3 Block類11</p><p> 4.4 BlockView類12</p><p> 4.5 LayMines類12</p>&
17、lt;p> 4.6 Record類13</p><p> 4.7 showRecord類14</p><p> 5 系統(tǒng)測試16</p><p><b> 結(jié)論20</b></p><p><b> 致謝21</b></p><p><b
18、> 參考文獻(xiàn)22</b></p><p><b> 緒 論</b></p><p> 掃雷一詞有多個(gè)意思。掃雷游戲是微軟于1992年附帶在其操作系統(tǒng)中的小游戲,它通過點(diǎn)擊格子并以出現(xiàn)的數(shù)字來判斷附近地雷的數(shù)量,將全部地雷做上標(biāo)記即可勝利;軍事上的掃雷(mine clearing)是指搜索和清除地雷、陸軍水雷及其他爆炸物的行動(dòng);掃雷又被引作網(wǎng)絡(luò)
19、用語。</p><p> 掃雷最原始的版本可以追溯到1973年一款名為“方塊”的游戲,不久之后,“方塊”被改寫成了游戲“Rlogic”,在“Rlogic”里,玩家的任務(wù)是作為美國海軍陸戰(zhàn)隊(duì)隊(duì)員,為指揮中心探出一條沒有地雷的安全路線,如果路全被地雷堵死就算輸。兩年后,湯姆·安德森在“Rlogic”的基礎(chǔ)上又編寫出了游戲“地雷”,由此奠定了現(xiàn)代掃雷游戲的雛形。 </p><p>
20、 1981年,微軟公司的羅伯特·杜爾和卡特·約翰遜兩位工程師在Windows 3.1系統(tǒng)上加載了該游戲,掃雷游戲才正式在全世界推廣開來。 這款游戲的玩法是在一個(gè)9*9(初級),16*16(中級),16*30(高級),或自定義大小的方塊矩陣中隨機(jī)布置一定量的地雷(初級為10個(gè),中級為40個(gè),高級為99個(gè))。由玩家逐個(gè)翻開方塊,以找出所有地雷為最終游戲目標(biāo)。如果玩家翻開的方塊有地雷,則游戲結(jié)束。 </p>
21、<p> 掃雷游戲的目標(biāo)是盡快找到雷區(qū)中的所有不是地雷的方塊,而不許踩到地雷。游戲區(qū)包括雷區(qū)、地雷計(jì)數(shù)器和計(jì)時(shí)器,在“游戲”菜單上,單擊“開局”,計(jì)時(shí)器就會(huì)啟動(dòng),此時(shí)請單擊游戲區(qū)中的任何方塊,點(diǎn)開的數(shù)字是幾,則說明該數(shù)字旁邊的8個(gè)位置中有幾個(gè)雷,如果挖開的是地雷,則會(huì)輸?shù)粲螒?,用右鍵標(biāo)記您認(rèn)為可能有地雷的方塊。</p><p><b> 1 開發(fā)環(huán)境</b></p>
22、;<p><b> 1.1 開發(fā)工具</b></p><p> Sun Microsystems公司在推出Java語言的同時(shí),推出了一套開發(fā)工具JDK。Sun提供的基于字符模式的Java開發(fā)工具包JDK: Java開發(fā)工具(JDK)是許多Java專家最初使用的開發(fā)環(huán)境。Java是平臺無關(guān)的語言是指用Java寫的應(yīng)用程序不用修改就可在不同的軟硬件平臺上運(yùn)行?! ?Java
23、源程序編寫借助于記事本,Editpuls,UltraEdit等三方編輯工具編寫?! ?所有的Java文件編輯、編譯、調(diào)試、解釋運(yùn)行都是通過使用字符命令來執(zhí)行操作。JDK由一個(gè)標(biāo)準(zhǔn)類庫和一組建立,測試及建立文檔的Java實(shí)用程序組成。其核心JavaAPI是一些預(yù)定義的類庫,開發(fā)人員需要用這些類來訪問Java語言的功能。JDK 是整個(gè)Java的核心,包括了Java運(yùn)行環(huán)境(Java RuntimeEnvirnment),一堆Java工具和
24、Java基礎(chǔ)的類庫(rt.jar)。不論什么Java應(yīng)用服務(wù)器實(shí)質(zhì)都是內(nèi)置了某個(gè)版本的JDK。因此掌握J(rèn)DK是學(xué)好Java的第一步。 JDK里面是Java類庫和Java的語言規(guī)范,它提供的是無論你用何種開發(fā)軟件寫Java程序都必須用到的類庫和J</p><p><b> 1.2 應(yīng)用環(huán)境</b></p><p> (1) 操作系統(tǒng):Windows XP及
25、以上版本</p><p> (2) 應(yīng)用軟件:JDK2.0 Eclipse6.0</p><p><b> 1.3 編寫意義</b></p><p> 隨著計(jì)算機(jī)得普及,人們越來越多得接觸到計(jì)算機(jī),人們得生活工作中無處不有計(jì)算機(jī)得身影,人們面對長時(shí)間的難免會(huì)有倦怠的情緒,而人們大多得緩解情緒得網(wǎng)絡(luò)活動(dòng)其實(shí)并不能起到放松心情得作用,現(xiàn)
26、代人得生活節(jié)奏越來越快,有沒有一種快速緩解疲倦得游戲呢?我們提出設(shè)計(jì)一款益智得小游戲,這種游戲不會(huì)花太多時(shí)間,同時(shí)把玩家得思維帶動(dòng)起來,達(dá)到一舉多得得效果。</p><p> 隨著現(xiàn)在生活節(jié)奏的加快,人們在工作之余需要一個(gè)輕松娛樂的放松環(huán)境。因此我們小組編寫此軟件的目的,一方面作為初學(xué)者來了解掃雷的開發(fā),另一方面開發(fā)此軟件使用戶能在娛樂休閑的同時(shí)拓展思維能力。同時(shí)進(jìn)一步拓展研究,做到將掃雷層次升級,能夠在多人連
27、機(jī)的情況下,一起分工來進(jìn)行對戰(zhàn) 。如 一方放雷,另一方排雷。</p><p> 1.4 任務(wù)設(shè)計(jì)內(nèi)容</p><p> 本次設(shè)計(jì)只是完成了掃雷游戲的基本功能,在細(xì)節(jié)方面仍有待以后完善。</p><p> Windows 2000/XP系統(tǒng)提供的掃雷游戲是一個(gè)很有趣的游戲。本章的課程設(shè)計(jì)使用Java語言編寫一個(gè)與其類似的掃雷游戲。具體要求如下:</p&g
28、t;<p> (1) 掃雷游戲分為初級、中級和高級三個(gè)級別,掃雷英雄榜存儲每個(gè)級別的最好成績,即挖出全部的地雷且用時(shí)最少者。單擊游戲菜單可以選擇“初級”、“中級”和“高級”或“查看英雄版”。</p><p> (2) 選擇級別后將出現(xiàn)相應(yīng)級別的掃雷區(qū)域,這是用戶使用鼠標(biāo)左鍵單擊雷區(qū)中任何一個(gè)方塊便啟動(dòng)計(jì)時(shí)器。</p><p> (3) 用戶要揭開某個(gè)方塊,可單擊它
29、。若所揭方塊下有淚,用戶便輸了這一局,若所揭方塊下五雷,則顯示一個(gè)數(shù)字,該數(shù)字代表方塊的周圍的8個(gè)方塊中共有多少顆雷。</p><p> (4) 如果用戶認(rèn)為某個(gè)方塊下埋著雷,單擊右鍵可以在方塊上標(biāo)識一個(gè)用戶認(rèn)為是雷的圖標(biāo),即給出一個(gè)掃雷標(biāo)記。用戶每標(biāo)記出一個(gè)掃雷標(biāo)記(無論用戶的標(biāo)記是否正確),程序?qū)@示的剩余雷數(shù)減少一個(gè)。</p><p> (5) 掃雷勝利后(用時(shí)最少者),程序
30、彈出保存成績的對話框。</p><p> 2 可行性分析和需求分析</p><p> 2.1 可行性分析</p><p> 適用于各種群體,學(xué)生、老師、白領(lǐng),簡單卻有效地舒緩壓力,消磨閑暇時(shí)光,一局所需的時(shí)間很短,低級的只需十多秒,此軟件是以娛樂為主的休閑游戲,開發(fā)基于安卓手機(jī)操作系統(tǒng)。具有操作方便、便于保存等優(yōu)點(diǎn)</p><p>
31、 投資可行性:主要根據(jù)市場調(diào)查及預(yù)測的結(jié)果,以及有關(guān)的產(chǎn)業(yè)政策等因素,論證項(xiàng)目投資建設(shè)的必要性。</p><p> (1) 財(cái)務(wù)可行性:主要從項(xiàng)目及投資者的角度,設(shè)計(jì)合理財(cái)務(wù)方案,從企業(yè)理財(cái)?shù)慕嵌冗M(jìn)行資本預(yù)算,評價(jià)項(xiàng)目的財(cái)務(wù)盈利能力,進(jìn)行投資決策。</p><p> (2) 組織可行性:制定合理的項(xiàng)目實(shí)施進(jìn)度計(jì)劃、設(shè)計(jì)合理的組織機(jī)構(gòu)、選擇經(jīng)驗(yàn)豐富的管理人員、建立良好的協(xié)作關(guān)系、制
32、定合適的培訓(xùn)計(jì)劃等,保證項(xiàng)目順利執(zhí)行。</p><p> (3) 經(jīng)濟(jì)可行性:主要從資源配置的角度衡量項(xiàng)目的價(jià)值,評價(jià)項(xiàng)目在實(shí)現(xiàn)區(qū)域經(jīng)濟(jì)發(fā)展目標(biāo)、有效配置經(jīng)濟(jì)資源、增加供應(yīng)、創(chuàng)造就業(yè)、改善環(huán)境、提高人民生活等方面的效益。</p><p> (4) 法律可行性:在開發(fā)一個(gè)軟件之前一定要確定它是否觸犯某項(xiàng)法律或與國家的相關(guān)規(guī)定是否抵觸。掃雷游戲系統(tǒng)并不與任何法律或國家相關(guān)規(guī)定相抵觸,所
33、以在法律可行性上是通過的,在進(jìn)行設(shè)計(jì)時(shí)沒有違法任何法律法規(guī),也不對任何企業(yè)的系統(tǒng)進(jìn)行侵權(quán)等。系統(tǒng)的研制和開發(fā)都選用正版軟件,將不會(huì)侵犯他人、集體和國家的利益,不會(huì)違反相關(guān)的國家政策和法律。 </p><p> (5) 技術(shù)可行性評價(jià):在限制條件下,功能目標(biāo)基本能夠?qū)崿F(xiàn)和達(dá)到,利用現(xiàn)有技術(shù),功能目標(biāo)基本能夠達(dá)到,開發(fā)人員足夠 能夠滿足條件要求,在規(guī)定時(shí)間內(nèi)能夠完成該項(xiàng)目開發(fā)。</p><p
34、><b> 2.2 需求分析</b></p><p> 隨著社會(huì)的不斷進(jìn)步,人們所承受的壓力不斷上升,在游戲?qū)映霾桓F的時(shí)刻,掃雷游戲仍受到不少人的青睞,其本身的性質(zhì),決定了人們對它的喜愛程度,不需要特殊的技巧,不需要不斷地升級,不需要太多的時(shí)間進(jìn)行初步的熟悉,簡簡單單卻樂趣無窮。</p><p> 2.2.1 理解需求</p><p&g
35、t; 掃雷游戲系統(tǒng)的建立,需要進(jìn)行用戶需求調(diào)查與分析,以確定系統(tǒng)目標(biāo),提高解決問題的詳細(xì)方案,這是系統(tǒng)建設(shè)的重要環(huán)節(jié)。</p><p> (1) 系統(tǒng)可以根據(jù)需求來設(shè)計(jì)功能模塊,如“開局”、“初級”、“中級”、“高級”“自定義”、“掃雷英雄榜”和“退出”等。</p><p> (2) 系統(tǒng)運(yùn)行在Eclipse平臺下,系統(tǒng)應(yīng)該有一個(gè)較好的圖形用戶界面。</p><
36、;p> 2.2.2 功能需求</p><p> 需求分析的任務(wù)是通過詳細(xì)調(diào)查現(xiàn)實(shí)世界要處理的對象,充分了解原系統(tǒng)(手工系統(tǒng)或計(jì)算機(jī)系統(tǒng))工作概況,明確各種需求,然后在此基礎(chǔ)上確定新系統(tǒng)的功能。</p><p> 根據(jù)用戶的需求,確定本圖書管理系統(tǒng)應(yīng)具有以下功能:</p><p> (1) 用戶可以自定義級別并且可以任意輸入雷數(shù);</p>
37、<p> (2) 具有計(jì)時(shí)功能,即顯示用戶完成移動(dòng)盤子所花費(fèi)的時(shí)間;</p><p> (3) 自動(dòng)保存掃雷英雄榜;</p><p> (4) 用戶可以設(shè)計(jì)“初級”、“中級”、“高級”三個(gè)級別。</p><p><b> 3 概要設(shè)計(jì)</b></p><p> 在設(shè)計(jì)掃雷游戲時(shí),需要編寫7個(gè)
38、Java源程序:MineGame.java、MineArea.java、Block.java、BlockView.java、LayMines.java、Record.java和ShowRecord.java。</p><p> 掃雷游戲除了需要編寫上述7個(gè)Java源文件所給出的類外,還需要Java系統(tǒng)提供的一些重要的類,如File、JButton和JLabel等類。掃雷游戲所用到的一些重要的類以及之間的組合關(guān)系
39、如圖3-1所示。</p><p> 圖3-1 類之間的組和關(guān)系</p><p> (1) MineGame.java(主類)</p><p> MineGame類負(fù)責(zé)創(chuàng)建掃雷游戲機(jī)主窗口,該文件含有main方法,掃雷游戲從該類開始執(zhí)行。MineGame類主要有三種類型的成員:File、MineArea和ShowRecord對象。</p><
40、;p> (2) MineArea.java</p><p> MineArea類創(chuàng)建的對象是MineArea類最重要的成員之一,代表“掃雷區(qū)域”。該類的成員變量中有5個(gè)重要類型的對象:Block、BlockView、LayMines和Record。</p><p> (3) Block.java</p><p> Block類是雷區(qū)中“方塊”的類封
41、裝,含有關(guān)于“方塊”的屬性以及操作,即負(fù)責(zé)為雷區(qū)創(chuàng)建代表“方塊”的Block對象。</p><p> (4) BlockView.java</p><p> BlockView是JPanel容器的子類,BlockView創(chuàng)建的對象負(fù)責(zé)為Block對象提供視圖,以便用戶通過該視圖與Block對象交互。BlockView對象使用一個(gè)標(biāo)簽和按鈕為Block對象提供視圖,標(biāo)簽和按鈕按著卡片布
42、局(CardLayout)層疊在一起,默認(rèn)狀態(tài)下按鈕遮擋住標(biāo)簽。當(dāng)用戶單擊按鈕后,如果Block對象是雷,BlockView對象中的標(biāo)簽顯示的是雷的圖標(biāo);如果Block對象不是是雷,標(biāo)簽顯示的是當(dāng)前Block對象周圍雷的總數(shù)。</p><p> (5) LayMines.java</p><p> LayMines類對象不需要視圖,在游戲中不需要看見該對象。LayMines對象使用隨
43、機(jī)算法指定MineArea對象中的哪些Block對象是雷,哪些Block對象不是雷。</p><p> (6) Record.java</p><p> Record類是JDialog對話框的子類,當(dāng)用戶掃雷成功時(shí),Record對象負(fù)責(zé)保存用戶的成績到文件。</p><p> (7) ShowRecord.java</p><p>
44、 ShowRecord類是JDialog對話框的子類,當(dāng)用戶查看掃雷的最好成功時(shí),ShowRecord對象負(fù)責(zé)讀取文件數(shù)據(jù)的界面。</p><p><b> 4 詳細(xì)設(shè)計(jì)</b></p><p> 掃雷系統(tǒng)流程圖如圖4-1所示。</p><p><b> 圖4-1 流程圖</b></p><
45、p> 4.1 MineGame類</p><p> MineGame類是javax.swing包中JFrame的一個(gè)子類,并實(shí)現(xiàn)了ActionListener接口,標(biāo)明該類的主要成員變量和方法的UML圖如圖4-2所示。</p><p> 圖4-2 MineGame類的UML圖</p><p> 以下是UML圖中有關(guān)數(shù)據(jù)和方法的詳細(xì)說明。</p
46、><p><b> (1) 成員變量</b></p><p> ?、?bar 和fileMenu提供菜單操作,單擊游戲菜單中的選項(xiàng)為“初級”、“中級”和“高級”或“掃雷英雄榜”。</p><p> ?、趍ineArea是掃雷區(qū)域,提供有關(guān)掃雷的主要功能。</p><p> ?、邸坝⑿郯瘛必?fù)責(zé)存放三個(gè)級別的掃雷最好的成績。
47、</p><p> ?、躶howHeroRecord負(fù)責(zé)顯示英雄榜中的數(shù)據(jù)。</p><p><b> (2) 方法</b></p><p> ?、費(fèi)ineGame( )是構(gòu)造方法,負(fù)責(zé)完成窗口的初始化。</p><p> ?、赼ctionPerformed(ActionEvent)方法是MineGame類實(shí)現(xiàn)的Ac
48、tionListener接口中的方法,該方法負(fù)責(zé)執(zhí)行菜單發(fā)出的有關(guān)命令。用戶選擇菜單中項(xiàng)可觸發(fā)ActionListener事件,導(dǎo)致actionPerformed(ActionEvent)方法執(zhí)行相應(yīng)的操作,例如將創(chuàng)建的雷區(qū)設(shè)置為初級、中級或高級等。</p><p> ③main(String[])方法是程序運(yùn)行的入口方法。</p><p> 4.2 MineArea類</p&
49、gt;<p> MineArea類是javax.swing包中JPanel容器的子類,實(shí)現(xiàn)了ActionListener和MouseListener接口,所創(chuàng)建的對象:mineArea是MineArea類中最重要的成員之一,作為一個(gè)容器添加到窗口的中心。標(biāo)明MineArea類的主要成員變量、方法以及和MineGame類之間組合關(guān)系的UML圖如圖4-3所示。</p><p> 圖4-3 Mine
50、Area類的UML圖</p><p> 以下是UML圖中有關(guān)數(shù)據(jù)和方法的詳細(xì)說明。</p><p><b> (1) 成員變量</b></p><p> ?、賐lock是Block類型的數(shù)組,用來確定雷區(qū)有多少需進(jìn)行掃雷的方塊。</p><p> ?、赽lockView是BlockView類型的數(shù)組,負(fù)責(zé)為block
51、數(shù)組中的Block對象提供視圖。</p><p> ③lay是LayMines類型的對象,負(fù)責(zé)設(shè)置block數(shù)組中的哪些方塊是雷或不是雷。</p><p> ?、躵ecord負(fù)責(zé)提供保存成績的界面,是一個(gè)對話框,默認(rèn)不可見。用戶只有掃雷成功后(用時(shí)最少者),才可以看見該對話框。</p><p> ?、輗eStart是一個(gè)按鈕對象,用戶單擊它重新開始游戲。</
52、p><p> ⑥time是計(jì)時(shí)器對象,負(fù)責(zé)計(jì)算用戶的用時(shí)。</p><p><b> (2) 方法</b></p><p> ?、賗nitMineArea(int,int,int,int)方法可根據(jù)參數(shù)提供的數(shù)據(jù)設(shè)置雷區(qū)的寬度、高度、雷的數(shù)量以及雷區(qū)的級別。</p><p> ②actionPerformed(Acti
53、onEvent)是MineArea類實(shí)現(xiàn)的ActionListener接口中的方法。當(dāng)用戶單擊blockView中的某個(gè)方塊時(shí),actionPerformed(ActionEvent)方法負(fù)責(zé)執(zhí)行有關(guān)算法,例如,當(dāng)用鼠標(biāo)左鍵單擊方塊上的按鈕后,若方塊下有雷,actionPerformed(ActionEvent)方法將使用戶輸?shù)舯揪?,若該方塊下無雷,actionPerformed(ActionEvent)方法將顯示BlockView對象
54、中的標(biāo)簽,該標(biāo)簽上是一個(gè)數(shù)字,該數(shù)字代表當(dāng)前方塊的周圍的8個(gè)方塊中共有多少顆雷。</p><p> ?、跾how( )方法是一個(gè)遞歸方法。actionPerformed(ActionEvent)方法執(zhí)行時(shí)將調(diào)用方法進(jìn)行掃雷。</p><p> ?、躮ousePressed(MouseEvent)方法是MineArea類實(shí)現(xiàn)的MouseListener接口中的方法,當(dāng)用戶按下鼠標(biāo)右鍵時(shí),ac
55、tionPerformed(ActionEvent)方法負(fù)責(zé)讓方塊上線是一個(gè)探雷標(biāo)記。</p><p> ?、輎nquireWin( )方法用來判斷用戶是否掃雷成功,如果成功該方法負(fù)責(zé)讓record對話框可見。所謂掃雷成功是指不僅找到全部的雷而且用時(shí)最少。</p><p> 4.3 Block類</p><p> Block類創(chuàng)建的對象是數(shù)組block的單元中
56、的對象。Block型數(shù)組block是MineArea類的重要成員之一。標(biāo)明Block類的主要成員變量和方法以及和MineArea類之間組合關(guān)系的UML圖如圖4-4所示。</p><p> 圖4-4 Block類的UML圖</p><p> 以下是UML圖中有關(guān)數(shù)據(jù)和方法的詳細(xì)說明。</p><p><b> (1) 成員變量</b>&
57、lt;/p><p> ?、賜ame是方塊上的名字。</p><p> ?、赼roundMineNumber是方塊周圍雷的數(shù)目。</p><p> ③mineIcon是方塊上雷的圖標(biāo)。</p><p> ?、躨sMine用來表示方塊是否是雷。</p><p> ?、輎sMark用來表示方塊是否被標(biāo)記。</p>
58、<p> ?、辤sOpen用來表示方塊是否被挖開。</p><p><b> (2) 方法</b></p><p> ?、賡etAroundMineNumber(int)方法用來設(shè)置aroundMineNumber的值。</p><p> ?、趃etAroundMineNumber()方法用來獲取aroundMineNumber
59、的值。</p><p> 4.4 BlockView類</p><p> BlockView類是javax.swing包中JPanel類的子類,創(chuàng)建的對象是數(shù)組blockView的單元中的對象。blockView是BlockView類的最重要的成員之一。標(biāo)明BlockView類的主要成員變量和方法以及和MineArea類之間組合關(guān)系的UML圖如圖4-5所示。</p>&
60、lt;p> 圖4-5 BlockView類的UML圖</p><p> 以下是UML圖中有關(guān)數(shù)據(jù)和方法的詳細(xì)說明。</p><p><b> (1) 成員變量</b></p><p> ?、賐lockNameOrIcon用來顯示Block對象的name、number和mineIcon屬性。</p><p>
61、; ?、赽lockCover用來遮擋card卡片式布局。</p><p><b> (2) 方法</b></p><p> ①giveView(Block block)方法給參數(shù)指定的Block對象提供視圖,如果Block對象的isMine屬性為true,即方塊是雷,那么blockNameOrIcon標(biāo)簽上設(shè)置的文本就是Block對象的name屬性的值,同時(shí)bl
62、ockNameOrIcon標(biāo)簽上設(shè)置的圖標(biāo)就是Block對象的mineIcon制定的圖標(biāo)。如果Block對象的isMine屬性為false,blockNameOrIcon標(biāo)簽上設(shè)置的文本是Block對象的aroundMineNumber屬性的值,即周圍雷的數(shù)目。</p><p> ②seeBlockNameOrIcon( )方法讓用戶看見視圖中的標(biāo)簽,無法看見按鈕。</p><p>
63、③seeBlockCover( )方法讓用戶看見視圖中的按鈕,無法看見標(biāo)簽。</p><p> 4.5 LayMines類</p><p> LayMines類創(chuàng)建的對象lay是MineArea中最重要的成員。標(biāo)明該類的主要成員變量和方法以及和MineArea類之間組合關(guān)系的UML圖如圖4-6所示。</p><p> 圖4-6 LayMines類的UML圖
64、</p><p> 以下是UML圖中有關(guān)數(shù)據(jù)和方法的詳細(xì)說明。</p><p><b> (1) 成員變量</b></p><p> mineIcon用來存放一個(gè)格式gif的圖像。</p><p><b> (2) 方法</b></p><p> layMine
65、sForBlock(Block[][],int)方法對參數(shù)指定的Block數(shù)組進(jìn)行設(shè)置,其中int參數(shù)制定雷的數(shù)目。當(dāng)指定Block數(shù)組中某個(gè)單元中的方塊是雷時(shí),就將該方塊上的圖標(biāo)設(shè)置為mineIcon。當(dāng)指定Block數(shù)組中某個(gè)單元中的方塊不是雷時(shí),就將該方塊上的名字設(shè)置為周圍的雷的數(shù)目。</p><p> 4.6 Record類</p><p> Record是javax.swi
66、ng包中JDialog對話框的子類,并實(shí)現(xiàn)了ActionListener接口。Record創(chuàng)建的對象:record是MineArea類的成員之一,當(dāng)用戶掃雷成功時(shí),該對象提供了保存成績到文件的界面。標(biāo)明Record類的主要成員變量、方法以及和MineArea類之間組合關(guān)系的UML圖如圖4-7所示。</p><p> 圖4-7 Record類的UML圖</p><p> 以下是UML圖中
67、有關(guān)數(shù)據(jù)和方法的詳細(xì)說明。</p><p><b> (1) 成員變量</b></p><p> ?、賢extName提供用戶掃雷優(yōu)勝者輸出姓名。</p><p> ?、谟脩魡螕簟按_定”按鈕,可以保存成績。</p><p><b> (2) 方法</b></p><p&g
68、t; ?、賏ctionPerformed(ActionEvent)方法是Record類實(shí)現(xiàn)的ActionListener接口中的方法,當(dāng)用戶單擊“確定”按鈕后,該方法被執(zhí)行,所執(zhí)行的操作就是獲取用戶輸入的名字和用時(shí),然后調(diào)用writeRecord(String,String)方法將信息寫入到“英雄榜”中。</p><p> ②writeRecord(String,String)負(fù)責(zé)將有關(guān)信息,例如掃雷的用時(shí)、掃
69、雷的級別以及掃雷優(yōu)勝者的姓名等信息寫入到“英雄榜”文件。</p><p> 4.7 ShowRecord類</p><p> ShowRecord是javax.swing包中JDialog對話框的子類,并實(shí)現(xiàn)了ActionListener接口。ShowRecord創(chuàng)建的對象showHeroRecord是MineGame類(主類)的成員之一,當(dāng)用戶查看“英雄榜”菜單項(xiàng)時(shí),該對畫框可見,
70、提供了查看掃雷的最好成績的界面。標(biāo)明ShowRecord類的主要成員變量、方法以及和MineGame類之間組合關(guān)系的UML圖如圖4-8所示。</p><p> 圖4-8 ShowRecord類的UML圖</p><p> 以下是UML圖中有關(guān)數(shù)據(jù)和方法的詳細(xì)說明。</p><p><b> (1) 成員變量</b></p>
71、<p> ①File存放文件的引用。</p><p> ②用戶單擊“顯示成績”按鈕,可以查看各個(gè)級別掃雷的最好成績。</p><p> ?、塾脩魡螕簟爸匦掠浄帧卑粹o,可以將“英雄榜”中的成績恢復(fù)為初始值。</p><p><b> (2) 方法</b></p><p> ?、賏ctionPerform
72、ed(ActionEvent)方法是ShowRecord類實(shí)現(xiàn)的ActionListener接口中的方法,當(dāng)用戶單擊“顯示成績”按鈕后,該方法被執(zhí)行,所執(zhí)行的操作就是調(diào)用readAndShow( )方法。</p><p> ?、趓eadAndShow( )方法負(fù)責(zé)讀取存放在文件中的各個(gè)級別的掃雷最好成績以及掃雷者姓名,并顯示這些先關(guān)信息。</p><p><b> 5 系統(tǒng)測試
73、</b></p><p> (1) 程序運(yùn)行后,界面上有一個(gè)菜單和一個(gè)按鈕,分別是“游戲”和“重新開始”;當(dāng)玩家踩雷時(shí)候可以點(diǎn)擊“重新開始”。如圖5-1所示</p><p><b> 圖5-1 主界面</b></p><p> (2) 當(dāng)玩家點(diǎn)擊“游戲”菜單時(shí)會(huì)出現(xiàn)7個(gè)子菜單,分別是“開局”、“初級”、“中級”、“高級”“
74、自定義”、“掃雷英雄榜”和“退出”。當(dāng)玩家開始游戲時(shí)可以點(diǎn)擊“開局”進(jìn)行游戲,玩家還可以通過選擇“初級”、“中級”和“高級”按鈕來選擇游戲級別;玩家還可以通過“自定義”來進(jìn)行設(shè)置“行數(shù)”、“列數(shù)”、“雷數(shù)”和“級別”;游戲結(jié)束后玩家還可以通過“掃雷英雄榜”查詢成績;玩家可以通過“退出”退出游戲框。</p><p> (3) 點(diǎn)擊“游戲”出現(xiàn)的界面如圖5-2所示。</p><p> 圖
75、5-2 游戲界面</p><p> (4) 點(diǎn)擊“初級”選擇初級游戲時(shí)出現(xiàn)界面如圖5-3所示。</p><p> 圖5-3 初級窗口界面</p><p> (5) 開局后進(jìn)行游戲時(shí)出現(xiàn)界面如圖5-4所示。</p><p> 圖5-4 掃雷進(jìn)行中的效果</p><p> (6) 踩雷時(shí)候游戲就結(jié)束了,踩雷
76、時(shí)出現(xiàn)界面如圖5-5所示。</p><p> 圖5-5 掃雷失敗效果</p><p> (7) 游戲結(jié)束后點(diǎn)擊“掃雷英雄榜”顯示成績的界面,效果如圖5-6所示。</p><p> 圖5-6 成績界面</p><p><b> 結(jié) 論</b></p><p> Java是一個(gè)完全面向?qū)?/p>
77、象的語言,Java的命名規(guī)則是很容易讓人接受的。而且容易被編程人員記住。經(jīng)過實(shí)踐訓(xùn)練,對Java的綜合應(yīng)用能力有了較大的提高,另外對Java的特點(diǎn)有了更深層次的認(rèn)識。</p><p> 通過這次的畢業(yè)論文,我對Java這門語言有了更深刻的理解。其中包括類、對象、接口、繼承、方法以及Java語言中的常用包等的使用方法,特別是圖形用戶界面里各種組件的創(chuàng)建,事件處理等相關(guān)知識。還學(xué)會(huì)了很多在這個(gè)學(xué)期《Java課程設(shè)計(jì)
78、基礎(chǔ)》課上沒有學(xué)會(huì)和沒有學(xué)懂的東西,使我對Java語言是一種非常難懂的語言的思想有了極大的改觀。</p><p> 這次的畢業(yè)論文是用Java語言及相關(guān)知識設(shè)計(jì)一個(gè)掃雷游戲系統(tǒng),能實(shí)現(xiàn)選擇游戲級別,記錄游戲時(shí)間和保存游戲成績等功能。雖然整個(gè)設(shè)計(jì)的時(shí)間才短短兩個(gè)月,我還是對JDK等Java語言開發(fā)工具有了深層次的認(rèn)知,并熟練掌握了它們的使用方法。而且這次的畢業(yè)設(shè)計(jì),也使我的編程能力有了明顯的提高。</p&g
79、t;<p> 通過這次畢業(yè)設(shè)計(jì),我才明白學(xué)習(xí)是一個(gè)長期積累的過程,在以后的工作、生活中都應(yīng)該不斷的學(xué)習(xí),努力提高自己知識和綜合素質(zhì)。此外,我認(rèn)為這次畢業(yè)設(shè)計(jì)最大的收獲就是:知識必須通過應(yīng)用才能實(shí)現(xiàn)其價(jià)值!有些東西以為學(xué)會(huì)了,但真正到用的時(shí)候才發(fā)現(xiàn)是兩回事,所以我認(rèn)為只有到真正會(huì)用的時(shí)候才是真的學(xué)會(huì)了。</p><p> 這次畢業(yè)設(shè)計(jì)還讓我懂得了寫程序不能閉門造車,要努力拓寬知識面,開闊視野,拓展
80、思維。它還讓我學(xué)會(huì)了在網(wǎng)上查閱那些無限的資料。通過對此課題的開發(fā),使我對用Eclipse開發(fā)平臺有了一個(gè)比較清楚的認(rèn)識,體會(huì)到理論和實(shí)踐的重要性。由于自己的分析設(shè)計(jì)和程序經(jīng)驗(yàn)不足,該系統(tǒng)設(shè)計(jì)和實(shí)現(xiàn)過程中,還有許多沒有完善的地方,還請老師見諒。</p><p><b> 致 謝</b></p><p> 通過這兩個(gè)月來的忙碌和學(xué)習(xí),本次畢業(yè)論文設(shè)計(jì)已接近尾聲,作為一
81、個(gè)大專生的畢業(yè)設(shè)計(jì),由于經(jīng)驗(yàn)的匱乏,難免有許多考慮不周全的地方,在這里衷心感謝指導(dǎo)老師的督促指導(dǎo),以及一起學(xué)習(xí)的同學(xué)們的支持,讓我按時(shí)完成了這次畢業(yè)設(shè)計(jì)。</p><p> 在本次畢業(yè)掃雷游戲設(shè)計(jì)過程中,首先得感謝的是指導(dǎo)老師xx老師,他給予了我悉心指導(dǎo)和大力支持,對于我順利完成這次畢業(yè)設(shè)計(jì)起到了關(guān)鍵性的作用。同時(shí)感謝我院、系領(lǐng)導(dǎo)對我們的教導(dǎo)和關(guān)注;感謝大學(xué)三年傳授我們專業(yè)知識的所有老師,謝謝你們嘔心瀝血的教導(dǎo)
82、。還有謝謝我周圍的同窗朋友,如果沒有他們的幫助,此次畢業(yè)論文的完成將變得困難。最后,感謝生我養(yǎng)我的父母。謝謝他們給了我無私的愛,為我求學(xué)所付出的巨大犧牲和努力。</p><p><b> 參考文獻(xiàn)</b></p><p> [1] 朱福喜,尹為民,余振坤.Java語言與面向?qū)ο蟪绦蛟O(shè)計(jì).武漢:武漢大學(xué)出版社,2008.</p><p>
83、 [2] 陳國君,陳磊.Java 2從入門到精通.北京:清華大學(xué)出版社,2008.</p><p> [3] 王梅,Java并發(fā)編程—設(shè)計(jì)原則與模式.北京:中國電力出版社,2009.</p><p> [4] 尹偉民,Java程序設(shè)計(jì)之網(wǎng)絡(luò)編程.北京:清華大學(xué)出版社,2008.</p><p> [5] 印昊.Java與面向?qū)ο蟪绦蛟O(shè)計(jì).北京:高等教育
84、出版社,2008.</p><p> [6] 耿祥義.Java課程設(shè)計(jì).北京:清華大學(xué)出版社,2009.</p><p> [7] 趙生慧.Java面向?qū)ο蟪绦蛟O(shè)計(jì).北京:高等教育出版社,2009.</p><p> [8] 甘仞初.信息系統(tǒng)開發(fā).北京:北京經(jīng)濟(jì)科學(xué)出版社,2008.</p><p> [9] 李宣東,李存珠.
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于java的掃雷游戲的設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)設(shè)計(jì)
- 基于java的掃雷游戲設(shè)計(jì)與實(shí)現(xiàn)
- java掃雷游戲的設(shè)計(jì)與實(shí)現(xiàn)
- 基于java的掃雷游戲的設(shè)計(jì)與實(shí)現(xiàn)
- java_掃雷游戲課程設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)設(shè)計(jì)
- java版掃雷游戲設(shè)計(jì)與實(shí)現(xiàn)
- 掃雷游戲畢業(yè)設(shè)計(jì)
- 掃雷游戲畢業(yè)設(shè)計(jì)論文
- 網(wǎng)絡(luò)掃雷游戲畢業(yè)設(shè)計(jì)
- 掃雷游戲畢業(yè)設(shè)計(jì) (2)
- 網(wǎng)絡(luò)掃雷游戲畢業(yè)設(shè)計(jì)
- java掃雷游戲的設(shè)計(jì)與實(shí)現(xiàn) 任務(wù)書
- 掃雷游戲的設(shè)計(jì)與開發(fā)畢業(yè)設(shè)計(jì)
- java課程設(shè)計(jì)-掃雷游戲
- JAVA版掃雷游戲設(shè)計(jì)與實(shí)現(xiàn)論文.doc
- java+畢業(yè)設(shè)計(jì)+掃雷(程序)
- 掃雷游戲畢業(yè)設(shè)計(jì)論文
- 基于java的掃雷游戲課程設(shè)計(jì)
- java掃雷游戲課程設(shè)計(jì)
- vb做掃雷游戲畢業(yè)設(shè)計(jì)
評論
0/150
提交評論