J2ME偽高手先鋒開講——掃雷游戲的設計
首先我要裝得像高手一樣,來假裝把系統稍微分析一下。
一般,按照java得開發模式,這種程序一般是分為三個模塊來開發。
如下三個:
一個程序運作的主文件,也就是一個midlet的繼承;
一個界面的表示類,也就是一個canvas的繼承,界面上應該有些菜單,如new、exit 什麼的,那就應該要 implements一個 commandListener消息監聽類(大家可以把java的消息監聽理解為一個線程,一直像倭寇那樣對看得順眼的東西虎視耽耽,當然這裡指的是他所能觸及到的消息,當收到消息的時候,會調用一個抽象函數public void commandAction(Command c, Displayable d),而這個抽象函數使得我們可以通過對他的實現來處理收到的消息,即消息響應)
最後一個當然就是與界面無關的邏輯單元了,在這裡我們定義整個游戲的邏輯,做到邏輯與界面分開。這是我學java的最大收獲,呵呵。
首先正式開始第一講 <掃雷游戲的邏輯>
我的設想是,掃雷的地圖一般是一個矩形,因為,圓形屏幕的手機看起來蠻變態的,沒有必要遷就他,所以,我用一個a*b的二維數組就完全可以表示整個地圖。
有了地圖以後地圖裡面的類容自然就有一部分是表示地雷啦,既然這樣,那不如就這樣<廢話來的,小朋友不要學>
/**
* 20 標志該位置為地雷
* <=10的數字表示未翻開的方塊及周圍的地雷數目
* >=10的數字表示已翻開的方塊及周圍的地雷數目
* */
表示方法就出來了,邏輯也明朗起來了。
我要將某個塊翻開,只要將他加上10就可以了。
Java編程第一步,當然是先要class啊
package games;
import java.util.Random;
import java.lang.Math;
class gamelogic {
/**表示一個10*10的棋盤*/
private int[][] pan = new int;
private Random random;//一個隨機變量,主要作用是用來指定哪些位置為地雷
private int BombNum = 0; //統計地雷總數
/**游戲是否結束*/
private boolean GameOver;
接下來就是要初始化地圖了,地圖首先要扔一個雷在上面啊,不然怎麼叫掃雷呢,扔完了地雷以後接下來當然是遍歷一次地圖(我們還是很仁慈地,我們得告訴掃雷的同志,某某位置,有多少雷,比如這樣:"01、01、12點中方向有地雷,14點鐘方向有幺雞,2點鐘方向有東風之類的啊")。