background image

MoveArea       byte   tempbyte;       tempbyte=   SelectArea[0];  

SelectArea[0]=MoveArea[0];       MoveArea[0]=tempbyte;       tempbyte= SelectArea[1];  
SelectArea[1]=MoveArea[1];       MoveArea[1]=tempbyte;       this.selected   =   false;  
repaint();     }         增 加 处 理 悔 棋 的 按 钮 :         HuaRongDaoMidlet.java:  
private final static Command CMD_UNDO = new Command("上一步", Command.SCREEN, 1); 
......  else if (c == CMD_UNDO)   {   //

处理 上一步    logic.unMove();  } 

......    注意:A.在 NetBeans 当中,有许多方便的按钮,当编辑代码的时候,代码编
辑区上面的最右边有两个注释和反注释的按钮,和 VS 的功能一样,只是没有    /* 
*/形式的注释,还有缩进反缩进等按钮,编辑很方便,而且当函数参数输入完成后,直
接按";"就可以自动在行尾加入分号。同样,可以    加入标签: BookMark,使得快速
回到上一个位置成为可能。    B.NetBeans 把搜索也加到这个工具栏里面,可以搜索,
标记,非常方便。    (2).改变移动方式,程序提供的移动方块的方式非常难操作,
我希望能够点一下方块他就智能地自己寻找能够移动的位置。这里还有一点需要注意,就
是不能绕弯,也就是 A-B-A-B 这样来回走,如果还有其他走法,因此算法中加入了许多
判断,但是比原来的代码要简单清晰易懂,操作也比原来简单多了。    代码如下: 
public class ControlLogic extends Canvas implements CommandListener       {       public 
static final byte DIRECTION_UP     = (byte) '1'; // 方 向 常 量       public static final byte 
DIRECTION_DOWN   =   (byte)   '2';   // 方 向 常 量       public   static   final   byte 
DIRECTION_LEFT   =   (byte)   '3';   // 方 向 常 量       public   static   final   byte 
DIRECTION_RIGHT  =   (byte)   '4';   // 方 向 常 量       private   byte[]   currentCursor   =   new 
byte[4]; // 当 前 光 标 所 在 位 置 , 四 个 参 数 分 别 是 X,Y,width,height.       private byte[] 
nextCursor= new byte[4]; //要移动到的位置的光标区域,参数同上.   private Map MyMap 
= new Map();//地图类   private int level;//当前的关   public int moves=0;//所用的步
数 .       private   History   history   =   new   History();       public   boolean   isWin=false;  
public ControlLogic(int gameLevel) {// 构 造 函 数       try         {         this.level = 
gameLevel;    isWin=false;    nbInit();//NetBeans 定义的初始化函数    } 
catch (Exception e)         {         e.printStackTrace();       }     }     private void 
Init_game()  {   //初始化游戏,读取地图,设置选择区域,清空要移动到的区域

 

this.currentCursor = MyMap.read_map(this.level);//读取地图文件,并返回光标的初始位置

 

//0 为水平位置,1 为竖直位置, 2 为宽,3 为高.   nextCursor[0]=currentCursor[0]; //初始

 

 

 

nextCursor[1]=currentCursor[1];

 

nextCursor[2]=currentCursor[2];   nextCursor[3]=currentCursor[3];  }  private void 
nbInit() throws Exception   {   //NetBeans 定义的初始化函数   //初始化实例变
量   Images.init();//初始化图片常量   Init_game();//初始化游戏,读取地图,设置
选择区域,清空要移  }