Java扫雷游戏的设计与实现毕业设计论文
項(xiàng)目介紹
掃雷這款游戲有著很長(zhǎng)的歷史,從掃雷被開(kāi)發(fā)出來(lái)到現(xiàn)在進(jìn)行了無(wú)數(shù)次的優(yōu)化,這款游戲變得越來(lái)越讓人愛(ài)不釋手了,簡(jiǎn)單的玩法在加上一個(gè)好看的游戲界面,每一處的細(xì)節(jié)都體現(xiàn)了掃雷的魅力。所以本次的畢業(yè)設(shè)計(jì)我將開(kāi)發(fā)一款掃雷游戲。
本次畢業(yè)設(shè)計(jì)是以JAVA語(yǔ)言作為開(kāi)發(fā)環(huán)境,使用Eclipse設(shè)計(jì)并開(kāi)發(fā)一個(gè)類(lèi)似Windows掃雷的游戲,實(shí)現(xiàn)其基本功能。論文首先介紹了課題背景,其次進(jìn)行了需求分析及可行性分析;然后設(shè)計(jì)游戲流程,介紹雷區(qū)中的雷怎么安放和產(chǎn)生雷的隨機(jī)算法;最后介紹游戲中可能會(huì)觸發(fā)的各種時(shí)間,比如鼠標(biāo)點(diǎn)擊時(shí)間和清理掉沒(méi)有雷的格子,其中鼠標(biāo)事件包括點(diǎn)擊到或沒(méi)有點(diǎn)擊到雷觸發(fā)的事件和點(diǎn)擊到重新開(kāi)始以及菜單觸發(fā)的事件,清理掉沒(méi)有雷的格子就需要使用“遞歸”的方法來(lái)使該功能可以簡(jiǎn)單的實(shí)現(xiàn)。
玩家需要在最短的時(shí)間內(nèi)找出雷區(qū)中所有的地雷,并加以標(biāo)識(shí),其他沒(méi)有雷的格子全部點(diǎn)開(kāi)后游戲勝利。但是如果點(diǎn)到了地雷則游戲失敗。
游戲的操作很簡(jiǎn)單,當(dāng)玩家用鼠標(biāo)左鍵點(diǎn)擊自己認(rèn)為不是地雷的格子會(huì)點(diǎn)開(kāi)該格子,用鼠標(biāo)右鍵點(diǎn)擊格子會(huì)標(biāo)記該格子,再次右擊可以取消標(biāo)記。玩家可以通過(guò)雷區(qū)中被點(diǎn)開(kāi)的格子上顯示的數(shù)字來(lái)判斷該格子周?chē)?個(gè)格子所隱藏的地雷,例如:點(diǎn)開(kāi)的格子顯示數(shù)字“2”,則表示該格子周邊的8個(gè)格子里隱藏著2顆地雷。
如果點(diǎn)開(kāi)的格子下沒(méi)有雷且周?chē)?個(gè)格子里也沒(méi)有雷,則系統(tǒng)會(huì)自動(dòng)點(diǎn)開(kāi)那8個(gè)格子,然后遞歸判斷這些格子周?chē)袥](méi)有雷。
本次的掃雷游戲設(shè)計(jì),需要編寫(xiě)7個(gè)Java類(lèi):MineaGamae.java類(lèi)、MineAra.java類(lèi)、Block.jaav類(lèi)、BlockVaiw.java類(lèi)、LayMinas.java類(lèi)、Record.java類(lèi)和ShowRecrd.java類(lèi)。
(1) MineGame.java
MineGame類(lèi)是游戲的入口,用來(lái)初始化游戲資源,比如界面尺寸和雷數(shù)等。同時(shí)也負(fù)責(zé)難度的轉(zhuǎn)換。
(2) MineArea.java
MineArea類(lèi)是布置雷區(qū)的雷,除了初始化雷區(qū)以外還可以響應(yīng)玩家的鼠標(biāo)操作。
(3) Block.java
Block類(lèi)是一個(gè)POJO類(lèi),主要記錄了雷區(qū)一個(gè)個(gè)格子的屬性,比如名字,周?chē)椎臄?shù)目等等。
(4) BlockView.java
BlockView類(lèi)用來(lái)顯示塊的屬性,并且使用卡片布局來(lái)使格子分為了上下兩層,當(dāng)玩家點(diǎn)擊格子后,會(huì)使下面的屬性浮現(xiàn)出來(lái)。
(5) LayMines.java
LayMines類(lèi)是計(jì)算不是雷的格周?chē)讉€(gè)數(shù)的類(lèi),以及設(shè)置點(diǎn)選之后的圖片樣式。創(chuàng)建的對(duì)象lay是MineArea中最重要的成員。
(6) Record.java
Record類(lèi)是通過(guò)IO流將游戲記錄儲(chǔ)存在本地的文件中,主要實(shí)現(xiàn)通關(guān)后彈窗提示通關(guān)的窗口,以及記錄成績(jī)。
(7) ShowRecord.java
ShowRecord類(lèi)是顯示掃雷記錄的類(lèi)。
效果圖
目 錄
摘 要 i
Abstract ii
1 緒論 1
1.1 課題背景及意義 1
1.2 開(kāi)發(fā)工具的選用及介紹 1
1.3 選題目的和意義 2
1.4 本文主要研究的內(nèi)容 2
2 需求分析 3
2.1 可行性分析 3
2.2 掃雷游戲功能描述 3
2.3 掃雷游戲用例圖 4
2.4 掃雷游戲功能需求 4
2.5 掃雷游戲界面需求 5
2.6 掃雷游戲功能模塊 6
3 游戲的概要分析與設(shè)計(jì) 7
3.1 設(shè)計(jì)構(gòu)想 7
3.2 流程規(guī)劃 8
3.3 界面規(guī)劃 9
3.4 算法思想 9
4 游戲的詳細(xì)設(shè)計(jì) 11
4.1 游戲初始化 11
4.2 雷區(qū)的布置 12
4.3 游戲中主要模塊的介紹與使用 13
4.3.1 鼠標(biāo)事件 13
4.3.2 地雷及雷區(qū)表面探測(cè)情況 14
4.3.3 清除未靠近地雷的格子 15
4.3.4 游戲難度的選擇 16
4.3.5 菜單欄的功能 16
4.4 游戲的判斷 16
4.4.1 游戲成功完成 16
4.4.2 游戲失敗 16
4.5 類(lèi)設(shè)計(jì) 17
4.5.1 MineGame類(lèi) 17
4.5.2 Block類(lèi) 18
4.5.3 BlockView類(lèi) 19
4.5.4 Record類(lèi) 20
4.5.5 ShowRecord類(lèi) 21
4.5.6 MineArea類(lèi) 22
4.5.7 LayMines類(lèi) 23
5 游戲?qū)崿F(xiàn) 25
5.1 游戲難度自定義 25
5.2 掃雷 28
5.2.1 玩家通過(guò)右鍵進(jìn)行掃雷,并顯示小紅旗 28
5.2.2 玩家因觸碰到雷而導(dǎo)致游戲結(jié)束 29
5.2.3 玩家掃雷成功 29
5.2.4 玩家游戲數(shù)據(jù)顯示 30
5.3 程序打包發(fā)布過(guò)程 32
6 游戲測(cè)試結(jié)果 33
6.1 游戲難度自定義測(cè)試 33
6.2 掃雷測(cè)試 35
6.3 玩家游戲數(shù)據(jù)顯示測(cè)試 37
6.4 游戲數(shù)據(jù)顯示區(qū)測(cè)試 39
6.5 遞歸算法測(cè)試 43
結(jié) 論 44
參考文獻(xiàn) 45
致 謝 47
外文原文 48
中文翻譯 55
總結(jié)
以上是生活随笔為你收集整理的Java扫雷游戏的设计与实现毕业设计论文的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: ftp客户端使用详细说明【linux和w
- 下一篇: mysql 动态sql 解析json数据