中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

java小項目之:掃雷,這游戲其實沒有那么簡單!

發布時間:2020-04-21 17:35:04 來源:網絡 閱讀:340 作者:qq5dda6ecead5a8 欄目:編程語言

掃雷
我之前分享的小項目和小游戲,電影購票、坦克大戰、捕魚達人、貪吃蛇等,雖然已經是耳熟能詳人盡皆知的項目和游戲,但是保不齊真的有人沒接觸過。
今天分享的這個項目,我不相信沒人接觸過(僅限80后-00后)。掃雷,這幾乎所有電腦都有的一款超級小游戲,在全國各地的微機課上飽受歡迎,玩法緊張刺激、老少皆宜,而且還益智。今天便分享用java怎么實現這一款神作。(文末附帶源碼素材獲取方式)
游戲介紹:
掃雷就是要把所有非地雷的格子揭開即勝利;踩到地雷格子就算失敗。
游戲主區域由很多個方格組成。使用鼠標左鍵隨機點擊一個方格,方格即被打開并顯示出方格中的數字;方格中數字則表示其周圍的8個方格隱藏了幾顆雷;如果點開的格子為空白格,即其周圍有0顆雷,則其周圍格子自動打開;如果其周圍還有空白格,則會引發連鎖反應;在你認為有雷的格子上,點擊右鍵即可標記雷;如果一個已打開格子周圍所有的雷已經正確標出,則可以在此格上同時點擊鼠標左右鍵以打開其周圍剩余的無雷格。
java小項目之:掃雷,這游戲其實沒有那么簡單!
1代表1的上下左右及斜角合計有一顆雷,依次輪推,2則有2顆,3則有3顆..
在確實是炸彈的方格上點了旗子,就安全了,不是炸彈的被點了旗子,后面會被炸死的..問號就先不確定這里有沒有炸彈,不會存在點錯了被炸死的狀況..
有個小竅門,在數字旁同時點左鍵和右鍵可以排雷..
第一下點的一定不是雷, 左鍵點開,右鍵用旗子標記雷,同時左右鍵點數字可以判斷周圍的雷是否已經全部標出..
每個數字代表 這個數字周圍九個格里,有幾顆雷!比如,1,周圍九個格里只有一顆雷,2 周圍九個格里就有兩顆雷,以此類推 ..通過單擊即可挖開方塊。如果挖開的是地雷,則您輸掉游戲..如果方塊上出現數字,則表示在其周圍的八個方塊中共有多少顆地雷..要標記您認為可能有地雷的方塊,請右鍵單擊它..
游戲區包括雷區、地雷計數器和計時器..數字就是這個方塊周圍的8個方塊里有的雷的數量,問號是自己弄上去的,可以的地方可以弄個問號,旗子就是確定那里有雷了..
代碼介紹:
主要運用java語言來完成。Java語言是一種跨平臺,適合于分布式計算環境的面向對象編程語言,用Java寫的應用程序不用修改就可在不同的軟硬件平臺上運行。
1、設計整個游戲的結構,一般采用MVC作為整個游戲的結構,結構清晰又容易理解。
2、一般來說,做這些游戲的時候,我們先從底層的model開始做起。在這里,model部分就是由兩張二維數組表組成,其中一張是mine,他上面放的就是一些最底層的數據,也就是說雷得分布情況。另外一張表是界面表chess,就是記錄一些顯示給用戶的數據。
3、然后要做的是對兩張表的初始化,這一步非常重要,對于第一張表mine的的初始化的方法為先隨機n個不重復的雷,分布到mine表中,然后,對雷周圍的格子進行賦值。這里我用到方法為:遍歷所有的雷,將雷周圍的格子加一,這樣就能達到賦數值這個工作了。其中,這里有一個難點,就是如何判定雷周圍的八個格子,其實方法很多,但是大多代碼繁瑣,或者處理邊界困難。這里我用到的方法是,計算兩個格子之間的距離,如果與雷的距離為1或者根號2的話,就能確定該格子在雷的周圍。然后是對chess進行初始化,chess就是界面表,也就是說,這里的數據是直接顯示給用戶看的。當然,初始化部分就是直接將賦值為板,就是等待去掃雷的狀態。
4、 然后就是掃雷部分,就是點擊一個格子,利用jlabel的觸發器將格子坐標傳送到controller中去,controller中根據mine表判斷點擊的是什么,分三種情況,如果是雷,那就將底層的所有數據都賦到chess中,然后gameover。如果是數字,那就直接把數字賦值到chess中去。如果是0,那就非常麻煩了,這也是這個游戲中的一個難點,玩過掃雷的同學應該都知道,點擊0時,會散開周圍所有的0.我這邊的解決方法是,將點到的0的坐標加到list里面去,在遍歷這個list,取出里面的坐標,查找他周圍的8個格子,如果是0,且坐標不與list中的中的坐標重復,就將第二次查找到的坐標放到list里面,然后取list的下一個值,點擊這個點,然后就是循環上面的語句。
5 、游戲中的另一個難點是,在游戲過程中,左右鍵同時點擊數字,會有一個提示,這里的做法是如果如果是數字的格子,監聽到左右鍵同時點擊數字事件,查找這個格子周圍的8個格子的紅旗數,如果周圍的紅旗數正好是格子上的數字,那么就將除紅旗之外的所有內容都顯示出來。
素材展示:
java小項目之:掃雷,這游戲其實沒有那么簡單!
需要游戲源碼和素材練手的小伙伴可以私信我領取!
如果喜歡這樣文章的可以關注我,我會持續更新,你們的關注是我更新的動力!
祝關注我的人都:身體健康,財源廣進,福如東海,壽比南山,早生貴子,從不掉發!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

淮南市| 马山县| 长丰县| 广汉市| 锦屏县| 盐边县| 剑阁县| 卓资县| 仁怀市| 大悟县| 普洱| 淮北市| 西充县| 盖州市| 沐川县| 民丰县| 东乡县| 巩义市| 瓮安县| 米易县| 韩城市| 吴忠市| 文水县| 平顺县| 敖汉旗| 调兵山市| 双峰县| 龙州县| 兴山县| 乌拉特前旗| 阿鲁科尔沁旗| 罗源县| 环江| 九寨沟县| 大冶市| 灌南县| 和田市| 永新县| 涿州市| 常宁市| 卓资县|