還在玩掃雷遊戲?P7大牛帶你探秘雷場,探究javascript背後的秘密
今日分享開始啦,請大家多多指教~
今天給大家分享的是
掃雷,這是系統自帶的經典小遊戲,以前上學那會上機的時候就經常玩這個,很喜歡,所以嘗試一下。
效果圖
實現思路
1。建立9行9列的二維陣列。
2。設定雷:隨機行數 i 和列數 j,根據隨機到 i、j 從二維陣列中取出對應的元素,將取到的元素設定一個屬性type等於1,表示當前元素已經是雷,並且遞增雷計數器,然後遞迴呼叫;如果取到的元素已經是雷了,則跳過繼續執行,雷計數器達到設定的最大值就跳出遞迴。
3。計算每個元素周圍的雷數量(周圍指的是 左上、上、右上、右、右下、下、左下、左 這8個位置),當前位置顯示對應的數字(待會內容裡面細說)
4。同樣根據這個二維陣列來建立遮罩的小方塊,正好蓋住之前建立的圖形。
5。點選這個遮罩的小方塊則觸發揭開,揭開後根據對應的數字或者雷做不同的操作。
程式碼實現
建立背景及相關元素
建立雷和顯示對應的圖片
1。隨機row 和 col,並從二維陣列中獲取到這個物件;
2。判斷他是否是雷,如果是則跳過當前;
3。如果當前不是雷,則標記當前物件為雷物件,並且更改圖片;
4。遞迴,當達到設定的數量時跳出。
計算周圍雷的數量並顯示
1。迴圈之前定義的二維陣列
2。如果當前元素的下標是(i,j),則左上為(i-1,j-1),上為(i-1,j ),右上為(i-1,j+1),以此類推,如下圖所示:
3。分別取出這些元素,並判斷他們是不是雷,如果是則計數累加,最後將計數對應到相應的圖片,然後顯示出來。
建立遮罩
建立計時和計數器
加入滑鼠移動事件
加入滑鼠點選事件
成功判定1
未開啟的數量與雷的數量相同
成功判定2
標記為雷(插旗)的數量與類總數相同
觸雷效果
滑鼠點選雷後,會觸發雷爆炸的一個動畫,這是透過圖片的切換來實現的
加入滑鼠右鍵事件
此事件是做插旗或者標記為未知等操作的。
最後加入重新開始事件,勝利和失敗圖片顯示就完成了。
小結
用canvas編寫了這個小遊戲,看著還行,不知道會不會有什麼我沒發現的bug,難度目前是設定成簡易的,如果要改難度,程式碼稍做修改即可。
今日份分享已結束,請大家多多包涵和指點!
相關文章
- 2021-09-09可笑的矽基生命: 石頭怎麼可能創造文明?
- 2021-06-13羅技VOICE M380語音滑鼠評測:一鍵解鎖新技能,張口就來!
- 2021-05-23吃雞不易?缺少趁手“家務事”?帶你體驗ROCCAT Kone ProAir
- 2021-05-14【高階統計】索引的設計、使用、維護、修改,你需要知道這些. . .
- 2021-04-27手把手教你: 使用Oracle AutoML進行預測(實戰教程)