掃雷游戲計算機畢業(yè)設(shè)計論文_第1頁
掃雷游戲計算機畢業(yè)設(shè)計論文_第2頁
掃雷游戲計算機畢業(yè)設(shè)計論文_第3頁
掃雷游戲計算機畢業(yè)設(shè)計論文_第4頁
掃雷游戲計算機畢業(yè)設(shè)計論文_第5頁
已閱讀5頁,還剩41頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、畢業(yè)設(shè)計(論文)任務(wù)書第1頁畢業(yè)設(shè)計(論文)題目:java版掃雷游戲畢業(yè)設(shè)計(論文)要求及原始數(shù)據(jù)(資料):1學(xué)習(xí)和掌握計算機編程相關(guān)的基本知識;2了解和運用java面向?qū)ο蟮奶匦裕?熟悉java的可移植性,跨平臺性等多種特性;4. 設(shè)計并實現(xiàn)掃雷游戲的基本功能;5訓(xùn)練檢索文獻(xiàn)資料和利用文獻(xiàn)資料的能力;6訓(xùn)練撰寫技術(shù)文檔與學(xué)位論文的能力。畢業(yè)設(shè)計(論文)主要內(nèi)容:1進(jìn)行可行性分析以及需求分析;2論述畢業(yè)設(shè)計所需開發(fā)環(huán)境以及開發(fā)工具;3實現(xiàn)程序的概要設(shè)計; 4在概要設(shè)計的基礎(chǔ)上進(jìn)行詳細(xì)設(shè)計,編寫實現(xiàn)各個類;5. 展示java編程的掃雷游戲源代碼;6進(jìn)行系統(tǒng)測試。學(xué)生應(yīng)交出的設(shè)計文件(論文):1內(nèi)

2、容完整、層次清晰、敘述流暢、排版規(guī)范的畢業(yè)設(shè)計論文;2包括畢業(yè)設(shè)計論文、源程序等內(nèi)容在內(nèi)的畢業(yè)設(shè)計電子文檔及其它相關(guān)材料。 第3頁主要參考文獻(xiàn)(資料):1張洪斌. java2高級程序設(shè)計m. 中科多媒體出版社, 2010.1211322孫鑫. java web開發(fā)詳解m .電子工業(yè)出版社, 2006.1892743薩師煊,王珊. 數(shù)據(jù)庫系統(tǒng)概論(第三版)m.北京:高等教育出版社,2009.55894王家華.軟件工程m.東北大學(xué)出版社,2012.67835尹偉民.java程序設(shè)計之網(wǎng)絡(luò)編程.北京:中國電力出版社,2009.891026趙生慧.java面向?qū)ο蟪绦蛟O(shè)計.北京:高等教育出版社,201

3、0.45787王梅.java并發(fā)程序設(shè)計原則與模式.北京:中國電力出版社,2008.1231488jontitus.ecntechnicaleditor:”theeclipseofstandj.journalofzhongkaiagrotechnicalcollege”,vol.19,no.2,2006.9wclay,richardson,donald,”avondolio.thejavahighclassweavesadistance:jdk5”,scientific&technologybookreview,no.3,200610alice woudhuysen.china interne

4、t:the long march towarde-commercej.theeconomistintelligenceunit.2007專業(yè)班級學(xué)生要求設(shè)計(論文)工作起止日期2014年3月17日2014年6月27日指導(dǎo)教師簽字 日期2014年3月17日教研室主任審查簽字日期系主任批準(zhǔn)簽字日期java版掃雷游戲摘要在當(dāng)今社會,互聯(lián)網(wǎng)技術(shù)飛速發(fā)展,人們的生活已經(jīng)越來越離不開網(wǎng)絡(luò),特別是電腦游戲,現(xiàn)在已成為很多人休閑娛樂的首要之選。為了滿足大家娛樂、休閑、放松的需求,并且能適當(dāng)開發(fā)玩家的智力,為鞏固并創(chuàng)新所學(xué)知識,所以開發(fā)并研究了本課題。本次設(shè)計使用的是java語言,其中用到了java語言的主要特

5、性,gui編程中的頁面布局,java語言中的典型遞歸算法,精細(xì)的隨機布雷算法等。另外,本論文是以軟件開發(fā)流程為線索,介紹了編程語言java以及本課題所用軟件eclipse,本次設(shè)計的可行性分析,需求分析,概要設(shè)計以及其詳細(xì)設(shè)計,系統(tǒng)測試等。最終,在利用所學(xué)知識,參考有關(guān)資料之后,設(shè)計出符合大眾需求,界面簡潔的掃雷游戲,并根據(jù)設(shè)計中的各個階段、程序所用到的主要技術(shù)、代碼中的關(guān)機語句等編寫完成了本論文,希望能為今后windows操作系統(tǒng)中掃雷游戲的發(fā)展提供一定的幫助。關(guān)鍵詞:java;掃雷游戲;設(shè)計;算法 java version of minesweeperabstractin todays s

6、ociety, the rapid development of internet technology, peoples lives have become increasingly inseparable from the network, particularly computer games, a lot of people now have become the first choice for entertainment. in order to satisfy your entertainment, leisure, relaxation needs, and proper me

7、ntal development of players, in order to consolidate the knowledge and innovation, so the development and study of this subject.this design uses java language, which uses the main features of the java language, gui programming, page layout, java language typical recursive algorithm, fine random bray

8、 algorithm. in addition, this paper is based on the software development process as a clue, introduced the java programming language and software used in this project eclipse, the feasibility of this design analysis, requirements analysis, preliminary design and detailed design, system testing.event

9、ually, after knowledge, reference to the relevant information in the use of learning, designed to meet the needs of the public, the interface is simple minesweeper game, and according to the various stages of the design, the main technology used in the program, code and other written statements comp

10、lete shutdown of the papers, hoping to provide some help for the future development of windows operating system minesweeper game.keywords: java;minesweeper;design;algorithm目 錄摘要iabstractii1.緒論11.1課題研究背景與意義11.1.1.研究背景11.1.2.研究意義11.2課題設(shè)計目標(biāo)21.3系統(tǒng)的開發(fā)環(huán)境及技術(shù)簡介21.3.1 設(shè)計中所用java語言的主要技術(shù)21.3.2設(shè)計中所用java語言的主要特性41

11、.3.3 設(shè)計中所用的eclipse的關(guān)鍵技術(shù)52.需求分析62.1功能需求62.2環(huán)境需求72.3用戶界面需求72.4可行性分析72.4.1可行性研究前提72.4.2對所建設(shè)系統(tǒng)的分析82.4.3結(jié)論意見83.概要設(shè)計與詳細(xì)設(shè)計93.1概要設(shè)計93.1.1設(shè)計的詳細(xì)設(shè)計目標(biāo)93.1.2 設(shè)計的主要算法93.1.3設(shè)計的主要結(jié)構(gòu)93.2詳細(xì)設(shè)計103.2.1 initgui()方法113.2.2 go()方法123.2.3 main()方法123.2.4 out()方法123.2.5 actionperformed()方法143.2.6 mouseclicked()方法154.編碼實現(xiàn)與調(diào)試1

12、74.1關(guān)鍵代碼介紹174.1.1 程序?qū)氲膬?nèi)容174.1.2 構(gòu)造方法174.1.3布雷184.2設(shè)計過程中截圖195.系統(tǒng)測試215.1測試的目的215.2測試的原則215.3系統(tǒng)測試的意義215.4 程序的系統(tǒng)測試21結(jié)論28參考文獻(xiàn)29致謝30外文原文31中文翻譯361.緒論1.1課題研究背景與意義1.1.1.研究背景 近年來,隨著計算機的深入普及,越來越多的人有了自己的電腦,計算機也被應(yīng)用到人類活動的各個領(lǐng)域,人們運用計算機完成許多重要的工作,計算機在人們的生活中變的越來越來重要。隨著計算機的應(yīng)用和發(fā)展,計算機已經(jīng)不單純是一個工作工具,各種應(yīng)用軟件業(yè)相繼問世,人們越來越重視計算機的

13、娛樂性了,所以,近年來游戲產(chǎn)業(yè)規(guī)模持續(xù)成長,全球每年游戲業(yè)總產(chǎn)值已經(jīng)突破200億美金,遠(yuǎn)遠(yuǎn)超越好萊塢電影產(chǎn)業(yè)以及音樂娛樂事業(yè),而成為目前娛樂事業(yè)的最大主流。不過游戲產(chǎn)業(yè)光鮮亮麗的背后,卻也隱含著高風(fēng)險、高成本的危機,顯示游戲產(chǎn)業(yè)慢慢步入“微利時代”。使用游戲軟件自然是為了滿足人們對娛樂性的要求,而有些軟件大都采用3d設(shè)計對系統(tǒng)配置的要求較高。目前整個游戲產(chǎn)業(yè)的運作模式已經(jīng)有明確的分工,由專業(yè)的游戲研發(fā)小組負(fù)責(zé)研發(fā)游戲,也有如微軟等國際級大廠負(fù)責(zé)游戲發(fā)行,甚至連“游戲制作人”也被培養(yǎng)成明星一樣成為一種招牌,明確的游戲產(chǎn)業(yè)分工的確有助于游戲產(chǎn)業(yè)的規(guī)模發(fā)展與進(jìn)化,但也無形中讓游戲開發(fā)成本大增。為了降

14、低游戲開發(fā)成本,開發(fā)娛樂性強、成本低的游戲就成為當(dāng)前的主要課題,在這種趨勢下各種小型的低成本的游戲軟件應(yīng)運而生。在這其中,系統(tǒng)自帶的小游戲也占據(jù)了相當(dāng)重要的地位,與那些網(wǎng)絡(luò)游戲和3d游戲相比,它有編寫簡單容易上手等特點,非常適合人們在完成工作的時候適當(dāng)?shù)膴蕵芬?。這些小游戲大都是以益智和娛樂為目的,不僅給緊張工作的人們以放松,還可以讓人們的大腦得到開發(fā)。 同時,在眾多游戲軟件中,掃雷游戲?qū)儆趯ο到y(tǒng)的配置要求較低的小游戲,能夠滿足人們對娛樂性和實用性的需求,是人們在完成工作學(xué)習(xí)娛樂時候的最好選擇?,F(xiàn)在越來越多的人投入到這種小游戲的開發(fā)當(dāng)中,它已經(jīng)成為一類必不可少的游戲軟件。在各種操作系統(tǒng)中都附帶

15、了這些小的游戲,而這些游戲也成為電腦用戶軟件中不可或缺的一部分。作為本系統(tǒng)的開發(fā)工具,java成為首選。因為在目前的程序設(shè)計語言中,java處于領(lǐng)先地位,它是一種跨平臺的面向?qū)ο蟪绦蛟O(shè)計語言,具有卓越的通用性、高效性、平臺移植性和安全性。廣泛應(yīng)用于游戲控制臺、個人pc、數(shù)據(jù)中心、科學(xué)超級計算機、移動電話和互聯(lián)網(wǎng)等方面,同時擁有全球最大的開發(fā)者專業(yè)社群,具有顯著優(yōu)勢和廣闊的前景。所以,本次設(shè)計采用java程序設(shè)計語言。1.1.2.研究意義隨著計算機與網(wǎng)絡(luò)的普及,人們生活水平的提高,電腦游戲越來越成為人們生活中不可或缺的一部分,尤其是現(xiàn)代社會人們工作壓力急劇增加,急于尋求一種排解的方式,同時游戲又

16、有助于大腦智力的開發(fā),不僅可以使玩家在獲得娛樂的同時放松心情,而且還可以潛移默化的提高自己的智力,還是免費的,不需要付出任何代價,所以電腦游戲就成了大家的首選。掃雷游戲是windows操作系統(tǒng)自帶的一款小游戲,雖然自windows操作系統(tǒng)開發(fā)以來,已經(jīng)歷經(jīng)數(shù)次換代更新,變得越來越龐大、復(fù)雜,功能也越來越強大,但是這款小游戲依然是該系統(tǒng)裝擊必備的軟件,可見這款小游戲受到越來越多人的喜愛。所以,本次設(shè)計就是為了適應(yīng)社會發(fā)展,迎合大眾開發(fā)的,希望能為今后的掃雷游戲的發(fā)展提供一定的幫助。在學(xué)習(xí)了四年的軟件基礎(chǔ)課程之后,我對理論知識已有了一定的了解,理所應(yīng)當(dāng)要通過實際動手來對自己所學(xué)的知識進(jìn)行檢測,也是

17、對之前所學(xué)知識的一種鞏固與檢查,同時還要從設(shè)計過程中學(xué)習(xí)到新的知識,領(lǐng)悟到j(luò)ava語言中更深的內(nèi)涵來拓展自己的知識面。另外,對于設(shè)計的掃雷游戲來說,它本身就特別受大眾的歡迎,為了使它更加便于使用,在其界面方面及操作方面一定要簡潔易懂,方便操作。1.2課題設(shè)計目標(biāo)本次設(shè)計的最終目標(biāo)是使用java語言設(shè)計一款功能全面、界面簡潔、操作簡單的掃雷游戲。掃雷游戲的目標(biāo)是盡快找到雷區(qū)中所有不是地雷的方塊,不可以踩到地雷。游戲區(qū)的主要界面為雷區(qū),它有多個小方塊組成,另外還有地雷計算器、計時器和“開始”按鈕等。單擊“開始”,計時器就會啟動,當(dāng)單擊雷區(qū)中的方塊時,如果沒有踩到雷,則方塊顯示數(shù)字為幾,就說明該數(shù)字

18、周圍一圈的8個位置中有幾個雷,如果踩到的事雷,那么游戲結(jié)束,即輸?shù)粲螒?。在游戲過程中可以點擊右鍵來標(biāo)記自己認(rèn)為可能是雷的方塊,以減少雷的數(shù)量。其中,此次設(shè)計的重點在于:(1)布雷的算法:即如何進(jìn)行隨機布雷,使每次游戲開始之后界面中的雷可以隨意分布;(2)方塊周圍雷數(shù)的計算:掃雷游戲要求在沒有雷的方塊被點擊之后就會顯示一個數(shù)字表示它周圍有幾個雷,這就需要把整個游戲區(qū)當(dāng)成一個二維數(shù)組來進(jìn)行設(shè)置;(3)頁面的設(shè)計:此設(shè)計的界面要由面板、菜單、按鈕等組成,要注意其中的布局、監(jiān)聽等。本文使用java語言設(shè)計掃雷游戲。先分析了該設(shè)計的可行性以及了解了掃雷游戲的具體需求,然后對游戲的功能和界面都進(jìn)行了設(shè)計,

19、并對系統(tǒng)進(jìn)行了測試,最終達(dá)到了預(yù)期的設(shè)計目標(biāo)。1.3系統(tǒng)的開發(fā)環(huán)境及技術(shù)簡介1.3.1 設(shè)計中所用java語言的主要技術(shù)java是一種可以撰寫跨平臺應(yīng)用軟件的面向?qū)ο蟮某绦蛟O(shè)計語言,它是一種簡單的,跨平臺的,面向?qū)ο蟮?,分布式的,解釋的,健壯的,安全的,結(jié)構(gòu)的,中立的,可移植的,性能優(yōu)異的多線程的動態(tài)語言。本次設(shè)計使用的是java語言,利用了它面向?qū)ο蟮奶匦?,其中主要運用到的java技術(shù)有:(1)gui編程,圖形用戶界面,是程序的一種圖示界面。向用戶提供了易于交互的工作界面,它包含了按鈕、菜單、輸入框等圖形元素,對于用戶來說,這些都是易于識別和操作的,因此用戶能夠?qū)⒆⒁饬杏趹?yīng)用程序的功能上

20、,而不用再執(zhí)行操作的技巧上花費精力。gui編程的步驟如下:創(chuàng)建一個容納gui組件的容器;選擇布局管理器,如果一個容器不使用默認(rèn)的布局管理器,則為它選擇一個新的布局管理器;向容器中添加組件;給組件添加時間監(jiān)聽器,檢測并相應(yīng)每一個gui組件所被期望的事件。(2)隨機布雷算法使用了math類中的random()方法來實現(xiàn)隨機布雷的功能。在java中,用(int)(math.random()*(max-min+1)+min的語句來設(shè)置指定范圍內(nèi)的隨機數(shù)。(3)遞歸算法,是把問題轉(zhuǎn)化為規(guī)模縮小了的同類問題的子問題,然后遞歸調(diào)用函數(shù)(或過程)來表示問題的解。它是一種直接或者間接調(diào)用自身算法的過程,在計算機

21、編寫程序中,遞歸算法對解決一大類問題是十分有效的,它往往使算法的描述簡潔而且易于理解。(4)事件處理模型,事件處理有3個組成部分:事件源、事件對象和事件監(jiān)聽者。java的事件處理機制中引入委托事件模型,不同的事件由不同的監(jiān)聽器處理,如圖1-1所示的是actionevent事件的處理模型。圖1-1 actionevent事件的處理模型圖(5)container類,是所有容器類的父類,該類是一個抽象類,包含了所有容器組件都必須具有的方法和功能,其中比較常用的方法有一下幾張,如表1-1所示:表1-1 container類的主要方法方法功能描述add()將組件加入到當(dāng)前容器中,每個被加入容器的組件按添

22、加順序獲得一個序號getcomponent(intindex)獲取指定序號的組件getcomponent(int x,int y)獲取指定坐標(biāo)(x,y)處的組件remove(component)將指定的組件移除remove(int index)將指定序號的組件移除removeall()將容器中所有的組件移除setlayout()設(shè)置容器的布局管理器validate()驗證此容器及其所有子組件(6)panel,屬于無邊框容器,是container類的子類,不能被移動、放大、縮小或關(guān)閉。一個程序不能使用panel作為最外層圖形界面的容器,因此,panel總是作為一個容器組件被加入到frame等其他

23、容器中。panel容器組件也可以進(jìn)行嵌套,即將一個panel組件加入到另一個panel組件中。(7)container layout,布局管理器。它主要包括flowlayout流式布局,borderlayout版面式布局,cardlayout卡片式布局,girdlayout網(wǎng)格式布局等四種布局方式。flowlayout將gui組件按照加入的先后順序,自左向右、自上而下地布局在容器中;borderlayout將組件安排在5個區(qū)域中,這5個區(qū)域分別為north、south、west、east和center,其中north是容器的頂部;cardlayout能夠?qū)崿F(xiàn)將多組件放在同一容器區(qū)域內(nèi)的交替顯示

24、,相當(dāng)于多張卡片摞在一起,任何時候都只有最上面的一個可見。另外,cardlayout還提供了一個方法,可以顯示特定的卡片,也可以按先后順序依次顯示,還可以直接定位到第一張或最后一張;girdlayout在一個嚴(yán)格的矩形網(wǎng)格結(jié)構(gòu)布局組件,容器被劃分為尺寸相等的矩形網(wǎng)格,每個網(wǎng)格中放置一個組件,網(wǎng)格的行數(shù)和列數(shù)可以再創(chuàng)建girdlayout對象時指定,采用girdlayout進(jìn)行布局管理,容器中的每個組件將占據(jù)大小完全相同的一個網(wǎng)格。(8)數(shù)組,是存放相同類型數(shù)據(jù)的集合,即一個容器。在程序中,使用數(shù)組時,首先要對數(shù)字進(jìn)行聲明,聲明數(shù)組并不創(chuàng)建一個對象,創(chuàng)建對象時只能用new語句實現(xiàn)。設(shè)計要要用到二

25、維數(shù)組,它的表示形式為:數(shù)據(jù)類型 數(shù)組名 。其中,數(shù)組對象的成員length可以用來獲取數(shù)組的長度。 以上是本次設(shè)計中主要用到的技術(shù),當(dāng)然在程序中還有很多知識點,由于篇幅問題只列舉了較為重要的技術(shù)。1.3.2設(shè)計中所用java語言的主要特性java具有通用性、高效性、平臺移植性和安全性等多種特性。在本次設(shè)計中,主要用到了它以下的特點:(1)面向?qū)ο螅琷ava吸取了c+面向?qū)ο蟮母拍?,將?shù)據(jù)封裝于類中,利用類的優(yōu)點,實現(xiàn)了程序的簡潔性和便于維護(hù)性。類的封裝性、繼承性等有關(guān)對象的特性,使程序代碼只需一次編譯,然后通過上述特性反復(fù)利用。程序員只需把主要精力用在類和接口的設(shè)計和應(yīng)用上。java提供了眾

26、多的一般對象的類,通過繼承即可使用父類的方法。在java中,類的繼承關(guān)系是單一的非多重的,一個子類只有一個父類,子類的父類又有一個父類。java提供的object類及其子類的繼承關(guān)系如同一棵倒立的樹形,根類為object類,object類功能強大,經(jīng)常會使用到它及其它派生的子類。(2)安全性,java的編程類似c+,學(xué)習(xí)過c+的讀者將很快掌握java的精髓。java舍棄了c+的指針對存儲器地址的直接操作,程序運行時,內(nèi)存由操作系統(tǒng)分配,這樣可以避免病毒通過指針侵入系統(tǒng)。java對程序提供了安全管理器,防止程序的非法訪問。(3)健壯性,java致力于檢查程序在編譯和運行時的錯誤。類型檢查幫助檢查

27、出許多開發(fā)早期出現(xiàn)的錯誤。java自己操縱內(nèi)存減少了內(nèi)存出錯的可能性。java還實現(xiàn)了真數(shù)組,避免了覆蓋數(shù)據(jù)的可能,這些功能特征大大提高了開發(fā)java應(yīng)用程序的周期。并且java還提供了null指針檢測、數(shù)組邊界檢測、異常出口、byte code校驗等功能。(4)動態(tài)性,java程序的基本組成單元就是類,有些類是自己編寫的,有些是從類庫中引入的,而類又是運行時動態(tài)裝載的,這就使得java可以在分部環(huán)境中動態(tài)的維護(hù)程序及分類,而不像c+那樣,沒檔期類庫升級以后,如果想讓程序具有新類庫提供的功能,就需要修改程序,重新編譯。 另外,在平時使用java語言時,還會用到以下特性:(1)平臺無關(guān)性,指ja

28、va能運行于不同的平臺。java引進(jìn)虛擬機原理,并運行于虛擬機,實現(xiàn)不同平臺的java接口之間。使用java編寫的程序能在世界范圍內(nèi)共享。java的數(shù)據(jù)類型與機器無關(guān),java虛擬機(java virtual machine)是建立在硬件和操作系統(tǒng)之上,實現(xiàn)java二進(jìn)制代碼的解釋執(zhí)行功能,提供于不同平臺的接口的。(2)分布式,java建立在擴(kuò)展tcp/ip網(wǎng)絡(luò)平臺上。庫函數(shù)提供了用http和ftp協(xié)議傳送和接受信息的方法。這使得程序員使用網(wǎng)絡(luò)上的文件和使用本機文件一樣容易。(3)解釋性,我們知道c,c+等語言,都是針對cpu芯片進(jìn)行編譯,生成機器代碼,該代碼的運行就和特定的cpu有關(guān)。jav

29、a不像c或c+,它不針對cpu芯片進(jìn)行編譯,而是把程序編譯成稱為自字節(jié)碼的一種“中間代碼”。字節(jié)碼是很接近機器碼的文件,可以在提供了java虛擬機(jvm)的任何系統(tǒng)上被解釋執(zhí)行。1.3.3 設(shè)計中所用的eclipse的關(guān)鍵技術(shù)本次設(shè)計所使用的工具為eclipse,在設(shè)計過程中在eclipse上編寫并運行java程序。正是利用它是一個開放源代碼的、基于java的可擴(kuò)展開發(fā)平臺,所以作為了本次設(shè)計使用工具的首選。然而,就其本身而言,它只是一個框架和一組服務(wù),用于通過插件組件構(gòu)建開發(fā)環(huán)境。幸運的是,eclipse 附帶了一個標(biāo)準(zhǔn)的插件集,包括java開發(fā)工具(java development ki

30、t,jdk)。eclipse最初由ibm開發(fā),目的是成為所有ibm開發(fā)工具產(chǎn)品提供支持的平臺,以避免對基礎(chǔ)結(jié)構(gòu)中的最通用元素的重復(fù)。這將使得用戶在不同平臺之間的切換的體驗更加愉快。雖然大多數(shù)用戶很樂于將 eclipse 當(dāng)作 java 集成開發(fā)環(huán)境(ide)來使用,但 eclipse 的目標(biāo)卻不僅限于此。eclipse 還包括插件開發(fā)環(huán)境(plug-in development environment,pde),這個組件主要針對希望擴(kuò)展 eclipse 的軟件開發(fā)人員,因為它允許他們構(gòu)建與 eclipse 環(huán)境無縫集成的工具。由于 eclipse 中的每樣?xùn)|西都是插件,對于給 eclipse

31、提供插件,以及給用戶提供一致和統(tǒng)一的集成開發(fā)環(huán)境而言,所有工具開發(fā)人員都具有同等的發(fā)揮場所。這種平等和一致性并不僅限于java開發(fā)工具。盡管 eclipse 是使用java語言開發(fā)的,但它的用途并不限于 java 語言;例如,支持諸如c/c+、cobol、php等編程語言的插件已經(jīng)可用,或預(yù)計將會推出。eclipse 框架還可用來作為與軟件開發(fā)無關(guān)的其他應(yīng)用程序類型的基礎(chǔ),比如內(nèi)容管理系統(tǒng)?;?eclipse 的應(yīng)用程序的一個突出例子是 ibm rational software architect,它構(gòu)成了 ibm java 開發(fā)工具系列的基礎(chǔ)。eclipse是著名的跨平臺的自由集成開發(fā)環(huán)

32、境(ide)。最初主要用來java語言開發(fā),通過安裝不同的插件eclipse可以支持不同的計算機語言,比如c+和python等開發(fā)工具。eclipse的本身只是一個框架平臺,但是眾多插件的支持使得eclipse擁有其他功能相對固定的ide軟件很難具有的靈活性。許多軟件開發(fā)商以eclipse為框架開發(fā)自己的ide。eclipse 最初由oti和ibm兩家公司的ide產(chǎn)品開發(fā)組創(chuàng)建,起始于1999年4月。ibm提供了最初的eclipse代碼基礎(chǔ),包括platform、jdt 和pde。eclipse項目ibm發(fā)起,圍繞著eclipse項目已經(jīng)發(fā)展成為了一個龐大的eclipse聯(lián)盟,有150多家軟件

33、公司參與到eclipse項目中,其中包括borland、rational software、red hat及sybase等。eclipse是一個開放源碼項目,它其實是visual age for java的替代品,其界面跟先前的visual age for java差不多,但由于其開放源碼,任何人都可以免費得到,并可以在此基礎(chǔ)上開發(fā)各自的插件,因此越來越受人們關(guān)注。隨后還有包括oracle在內(nèi)的許多大公司也紛紛加入了該項目,eclipse的目標(biāo)是成為可進(jìn)行任何語言開發(fā)的ide集成者,使用者只需下載各種語言的插件即可。2.需求分析掃雷游戲是以娛樂休閑為主的小型游戲,不僅可以使玩家休閑放松,調(diào)整心

34、情,消磨時間,而且還可以鍛煉并拓展玩家的觀察能力與思維能力。它適用于學(xué)生、公務(wù)員、白領(lǐng)等各種人群。這個游戲玩一局所需的時間很短,最多只需幾分鐘,這樣既有助于大家放松心態(tài),又不需花費太多時間,而且操作簡單,也不需要進(jìn)行繳費,只需一臺電腦即可開始游戲,所以受到了大家的廣泛認(rèn)可和歡迎。下面就本次設(shè)計的各個需求進(jìn)行分析,從而確定具體的設(shè)計內(nèi)容。2.1功能需求功能需求是指所開發(fā)軟件系統(tǒng)必須提供的服務(wù),劃分出系統(tǒng)完成的所有功能,它規(guī)定開發(fā)人員必須在產(chǎn)品中實現(xiàn)的軟件功能,用戶利用這些功能來完成任務(wù),滿足業(yè)務(wù)需求。功能需求有時也被稱作行為需求,因為習(xí)慣上總是用“應(yīng)該”對其進(jìn)行描述,功能需求描述是開發(fā)人員需要實

35、現(xiàn)什么。值得注意的是:用戶需求不總是被轉(zhuǎn)變成功能需求。另外,產(chǎn)品特性是指一組邏輯上相關(guān)的功能需求,它們?yōu)橛脩籼峁┠稠椆δ?,使業(yè)務(wù)目標(biāo)得以滿足。對商業(yè)軟件而言,特性則是一組能被客戶識別,并幫助他決定是否購買的需求,也就是產(chǎn)品說明書中用著重號標(biāo)明的部分??蛻粝M玫降漠a(chǎn)品特性和用戶的任務(wù)相關(guān)的需求不完全是一回事。一項特性可以包括多個用例,每個用例又要求實現(xiàn)多項功能需求,以便用戶能夠執(zhí)行某項任務(wù)。所以,由此看來,功能需求是需求分析過程中最重要的,也是必須提前考慮的,那么,根據(jù)平時對掃雷游戲的了解,確定應(yīng)具有以下功能:(1) 玩家在顯示為“游戲”的菜單中可以自己選擇游戲初級、中級、高級三個級別,且根據(jù)

36、級別不同,雷數(shù)也會相應(yīng)的不同;(2) 游戲具有計時功能,當(dāng)玩家點擊開始按鈕后,即可顯示玩家玩游戲所花費的時間;(3) 玩家可以右鍵標(biāo)記雷,即根據(jù)游戲規(guī)則,在玩的過程中,判斷出哪個方塊是雷時,可以單擊右鍵,這時此方塊顯示為“”,在之后玩的過程中就不會去點擊這個方塊;(4) 游戲具有顯示雷數(shù)的功能,當(dāng)玩家選擇級別之后,雷數(shù)計數(shù)器會顯示相應(yīng)的雷數(shù),在游戲開始后,當(dāng)玩家判斷出某一方塊是雷,且用右鍵進(jìn)行標(biāo)記之后,雷數(shù)計數(shù)器相應(yīng)的減一,要注意的是,無論此方塊是否為雷,雷數(shù)計數(shù)器均會減一;(5) 玩家在顯示為“幫助”的菜單中可以選擇“游戲說明”和“關(guān)于掃雷”兩個菜單項。點擊“游戲說明”時會彈出一個消息提示框

37、,顯示此掃雷游戲的主要玩法,方便第一次玩此游戲的玩家盡快懂得游戲技巧。點擊“關(guān)于掃雷”時,又會彈出一個消息提示框,顯示有關(guān)掃雷游戲的簡介,說明了它受歡迎的原因。(6) 在游戲過程中,當(dāng)玩家點擊某個方塊,未踩到雷時,此方塊顯示的數(shù)字必須保證與其周圍8個方塊中所包含雷數(shù)相同。(7) 整個游戲的顯示界面是一個面板,標(biāo)題可以進(jìn)行自定義,與普通面板一樣,可以進(jìn)行最小化、最大化和關(guān)閉。(8) 當(dāng)玩家在游戲過程中把所有雷全部并且正確找出時,系統(tǒng)會自動顯示“你贏了!”的消息,相反,當(dāng)玩家點擊的方塊是雷,即踩到雷時,系統(tǒng)會自動顯示“你輸了!”的消息。下面,在具體分析了掃雷游戲需要具有的功能之后,繪制出了如圖2-

38、1所示的功能需求組織結(jié)構(gòu)圖: 圖2-1 功能需求組織結(jié)構(gòu)圖2.2環(huán)境需求該掃雷游戲系統(tǒng)運行的軟件環(huán)境為eclipse平臺,所用電腦機型為惠普probook 6450b。2.3用戶界面需求本次掃雷游戲設(shè)計界面分為兩大塊,即菜單區(qū)和雷區(qū)。菜單區(qū)包含游戲(點擊可選擇初級、中級、高級),幫助(可查看掃雷游戲說明,點擊可選游戲說明和關(guān)于掃雷兩項),計時器(顯示游戲進(jìn)行時間),開始(點擊可開始游戲)以及雷數(shù)顯示器(顯示玩家標(biāo)記后的剩余雷數(shù))。雷區(qū)由許多小方塊組成,根據(jù)級別不同,方塊數(shù)目不同,初級為9*9的正方形游戲區(qū),中級也為16*16的正方形游戲區(qū),而高級為16*32的長方形游戲區(qū)。2.4可行性分析2.

39、4.1可行性研究前提本次設(shè)計完成了掃雷游戲的一些基本功能,利用java語言編寫,其中具體設(shè)計要求如下:(1)游戲界面分為菜單區(qū)和雷區(qū)。游戲級別分為初級、中級和高級三個級別,點擊菜單區(qū)中的游戲可以選擇級別。(2)選擇級別后將出現(xiàn)相應(yīng)級別大小的雷區(qū),玩家左擊鼠標(biāo)時計時器開始計時。當(dāng)單擊雷區(qū)中的方塊時,如果沒有踩到雷,則方塊顯示數(shù)字為幾,就說明該數(shù)字周圍一圈的8個位置中有幾個雷,如果踩到的事雷,那么游戲結(jié)束,即輸?shù)粲螒?。?)玩家在游戲過程中可以點擊右鍵來標(biāo)記自己認(rèn)為可能是雷的方塊,以減少雷的數(shù)量(注意不管所標(biāo)記的是否為雷,雷數(shù)都會減一)。若玩家把所有非雷的方塊找出則勝利。本次設(shè)計需達(dá)到的目標(biāo)即程序

40、在eclipse之上跑起來,并擁有以上所說的全部功能,另外盡可能使界面更為美觀,功能更加豐富。2.4.2對所建設(shè)系統(tǒng)的分析下面將分別從經(jīng)濟(jì)、技術(shù)、操作、法律等方面進(jìn)行該游戲設(shè)計的可行性分析:(1)經(jīng)濟(jì)可行性:開發(fā)此游戲所需成本即為人力成本與物力成本,開發(fā)人員是本人,系在校大學(xué)生,且此開發(fā)為畢業(yè)設(shè)計,必須完成的任務(wù),所以不存在人力成本。所用物力為一臺電腦與幾本參考書,而電腦與參考書之前就有,并不是專為此次開發(fā)而準(zhǔn)備,故物力成本主要為電費。而此開發(fā)潛在的市場前景較為光明,由于此游戲受歡迎程度較高,所以收益定會遠(yuǎn)大于成本,故此開發(fā)經(jīng)濟(jì)可行。(2)技術(shù)可行性:該游戲由java語言編寫,由于本人在學(xué)校中

41、學(xué)習(xí)過java程序設(shè)計實用教程,還在培訓(xùn)過程中學(xué)習(xí)了core java,所以對java語言有一定的掌握程度。另外現(xiàn)在網(wǎng)絡(luò)較為發(fā)達(dá),還可以在學(xué)校圖書館登陸中國知網(wǎng),查找資料十分方便,故此開發(fā)技術(shù)可行。(3)操作可行性:本次開發(fā)使用eclipse軟件進(jìn)行編程,由于程序可以跑起來,所以證明在這個應(yīng)用范圍內(nèi)系統(tǒng)的操作方式行得通。(4)法律可行性:掃雷游戲不與任何法律或國家相關(guān)規(guī)定相抵觸,在法律上可行性是通過的。另外在設(shè)計過程中沒有任何違法違規(guī)操作,也不會對任何企業(yè)的系統(tǒng)進(jìn)行侵權(quán),更不會侵犯他人、集體和國家的利益,故本次開發(fā)在法律上可行。2.4.3結(jié)論意見經(jīng)過對項目的性能、要求和基本功能的了解,并從經(jīng)濟(jì)

42、、技術(shù)、操作和法律四個方面進(jìn)行了可行性分析,最終,得出結(jié)論,項目可以開發(fā)。3.概要設(shè)計與詳細(xì)設(shè)計3.1概要設(shè)計3.1.1設(shè)計的詳細(xì)設(shè)計目標(biāo)本次設(shè)計參考windows操作系統(tǒng)自帶的掃雷游戲,包含了其所有基本功能,具體設(shè)計目標(biāo)如下:(1)游戲要包含初級、中級、高級三個級別,且級別不同,游戲的難度也會不一樣;(2)玩家想要進(jìn)行游戲時,必須點擊開始按鈕;(3)游戲開始之后,計時器開始以秒為單位開始計時;(4)游戲主要使用的鼠標(biāo)進(jìn)行操作,左鍵可以點擊按鈕,菜單等,右鍵用來進(jìn)行標(biāo)記雷;(5)當(dāng)某個方塊被標(biāo)記后,雷數(shù)計數(shù)器減一;(6)所有的雷全部找出且沒有雷的方塊均已點開以后,游戲勝利,相反,踩到雷時,游戲

43、失??;(7)幫助菜單中包含游戲說明和關(guān)于掃雷兩個選項,點擊二者均可出現(xiàn)一個消息提示框,分別用來顯示此掃雷游戲的主要玩法和掃雷游戲的簡介,方便第一次玩此游戲的玩家盡快懂得游戲技巧,同時還說明了它受歡迎的原因。(8)另外,對于界面來說,要求簡單易懂,符合大多數(shù)玩家的審美要求,所有功能可以使人一目了然。(9)在程序編寫完成之后,避免出現(xiàn)運行錯誤、無法顯示窗口等問題,同時,要做到代碼規(guī)范。3.1.2 設(shè)計的主要算法掃雷游戲的設(shè)計中,算法思想是最為重要的,本次設(shè)計中的主要算法使用的是隨機分布和計算某一方塊周圍的雷數(shù)。掃雷游戲要求在雷區(qū)隨機的布上bon個雷,且雷數(shù)的總量應(yīng)小于行列的乘積。其中bon的方塊是

44、雷區(qū),其余的方塊是非雷區(qū),游戲的目標(biāo)就是找到所有的地雷,并把它們標(biāo)記出來,以防止踩到地雷。為了實現(xiàn)這一隨機分布的目的,本次設(shè)計使用了math類中的random()方法。掃雷游戲還要求在沒有雷的方塊被點擊之后就會顯示一個數(shù)字表示他周圍8個方塊中有幾個是雷,這里用到了二維數(shù)組,使用了遞歸方法,用于設(shè)置各個雷區(qū)中的方塊顯示內(nèi)容及其周圍8個方塊的情況,即在檢查過方塊本身不是雷后,可以把余下的上方、右上方、右下方、下方、左下方、左上方的方塊的情況判斷出來。3.1.3設(shè)計的主要結(jié)構(gòu)本次掃雷游戲設(shè)計,編寫了一個java源程序: minesweeper.java,其中包含了兩個類:minesweeper類和n

45、ormoremouseevent類,在minesweeper類中擁有5個方法:initgui()方法、go()方法、main()方法、out()方法和actionperformed()方法;而normoremouseevent類中有一個方法:mouseclick()方法。在我的設(shè)計中,按方法來劃分模塊,把一個方法分成一個模塊,故有六個模塊。下面將把各個類與方法之間的調(diào)用關(guān)系展示如圖3-1:圖3-1 類與方法之間調(diào)用的關(guān)系(1)initgui()聲明初始化圖形界面方法,創(chuàng)建了菜單、菜單項等,并把各個菜單加入到菜單欄中,并設(shè)置了容器的布局,設(shè)置雷區(qū)的寬度,高度以及雷區(qū)的級別,還為各個按鈕添加了事件

46、監(jiān)聽器;(2)go()方法設(shè)置顯示窗體;(3)main()是程序的主方法,用來實例化窗體對象,調(diào)用go()方法將窗體顯示在屏幕之上;(4)out()方法是一個遞歸方法,用于設(shè)置各個雷區(qū)中的方塊顯示內(nèi)容及其周圍8個方塊的情況;(5)actionperformed()方法負(fù)責(zé)執(zhí)行有關(guān)算法,分別從初級、中級、高級各個級別來調(diào)用out()方法進(jìn)行掃雷;(6)mouseclicked()方法是normoremouseevent類中的一個接口方法。該方法當(dāng)鼠標(biāo)單擊時會觸發(fā)。3.2詳細(xì)設(shè)計在詳細(xì)設(shè)計中,主要考慮了聲明各個對象,設(shè)置各種點擊內(nèi)容及細(xì)化概要設(shè)計中提到的兩個類,六個方法中的具體內(nèi)容。詳細(xì)設(shè)計是整個

47、設(shè)計過程中用時最長的一個階段,它除了要細(xì)化各個方法中的具體功能,還要考慮代碼的規(guī)范性以及界面的美觀性等各種具體細(xì)致的問題。首先,根據(jù)上面提到的掃雷游戲的具體功能和實現(xiàn),描述出了它的系統(tǒng)流程圖,如圖3-2所示:開始左鍵點擊雷區(qū)中的方塊所點方塊是雷是否方塊中顯示的數(shù)值表示周圍8個方塊中所含雷數(shù)認(rèn)為該方塊時雷則右鍵標(biāo)記,同時雷數(shù)減一 所有雷均被找出否 是玩家獲勝游戲結(jié)束圖3-2 流程圖接下來,根據(jù)概要設(shè)計中劃分的六個模塊,對其進(jìn)行具體分析,解讀其中的主要代碼意義:3.2.1 initgui()方法initgui()方法中創(chuàng)建了面板、菜單欄、游戲菜單、幫助菜單、初級菜單項、中級菜單項、高級菜單項、游戲

48、說明菜單項和關(guān)于掃雷菜單項等。使用addactionlistener(this)來為各個級別的菜單項加入動作事件監(jiān)聽器,當(dāng)點擊鼠標(biāo)左鍵時菜單項會執(zhí)行actionperformed(actionevent e)方法。關(guān)于布局,開始使用borderlayout邊界布局,把面板分為東西南北中五大塊,具體代碼為:p=new jpanel();p.setlayout(new borderlayout();contentpane.add(p);隨后又使用girdlayout網(wǎng)格布局,使中間部分劃分成網(wǎng)格,設(shè)置為雷區(qū),具體代碼為:p2=new jpanel();p2.setlayout(new gridlayout(row,col,0,0); for(int i=0;i-1&n-1&mrow) for(int q=0;qrow; if(n+col*q)=(m*col)&(n+col*q)-1&n-1&mcol) for(int q=0;q=(m*col)&(n+col*q)-1&n-1&mcol) for(int q=0;q=(m*col)&(n+col*q)-1&n-1&mcol) for(int q=0;q=(m*col)&(n+col*q)(m+1)*col)

溫馨提示

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

評論

0/150

提交評論