于以上两个方法的,所以简单介绍。
Pr: checkFiveInRow(row,col,n) :int 检查某一位置的棋子是否存在五子连珠,存在则返回方向代码,不存在则返回-1。
Pr: goAt() :void 在棋盘上落子就是将数组中的相应位置填充为某方的代码,如1、2
Pr: isGameOver() :boolean调用checkFiveInRow()调用myCanvas.notifyGameEnd(isBlackWon)打印游戏结束;
Pr: moveOneStep(Dot,Direct) :Dot 在某方向(8个方向Direct)上移动一步,由connectedIn1D()等同类方法调用。
6.3 游戏画布类BTFIRCanvas的实现
Pr: BLACK :int 定义颜色的常量,置值为0,调用时为黑色。
Pr: WHITE :int 定义颜色的常量,置值为0xffffff,调用时为白色。
Pr: midlet :BTFIRMIDlet 主类的对象,需要主类传来些主类的参数
Pr: logic :BTFIRLogic 定义逻辑类的对象,需要调用逻辑类的方法。
Pr: font :Font 字体对象,字体设置和计算字体大小用到。
Pr: imgStatus :Image[] 定义图片对象的数组,存放图片。
Pr: CMD_STOP :Command 按钮的对象,在画布上添加退出按钮。
Pr: connection :Connection 连接类的对象,创建连接。
Pr: boardLength :int 棋盘长度。
Pr: boardSize :int 棋盘大小默认为15*15
Pr: boardX :int 棋盘左上角的X坐标。
Pr: boardY :int 棋盘左上角的Y坐标。
Pr: canvasWidth :int 屏幕宽度。
Pr: canvasHeight :int 屏幕高度。
Pr: cHeight :int 棋盘绘制区域的高度
Pr: cWidth : int 棋盘绘制区域的宽度
Pr: fontHeight :int 字体高度。
Pr: fontWidth :int 字体宽度。
Pr: gridLength :int 棋格长度。
Pr: stoneLength :int 棋子直径。
Pr: statusColor :int 提示字符串的颜色。
Pr: statusImage :int 提示图片的代码。
Pr: isBlack :boolean 我方是否为黑子,初始值为true。
Pr: isColor :boolean 手机是否支持颜色的标志
Pr: isMyTurn :boolean 是否轮到我方落子,初始值为true。
Pr: isServer :boolean 我方是否为服务器,初始值为true。
Pr: isUpSide :boolean 提示字符串位置是否在上方。
Pu: BTFIRCanvas(BTFIRMIDlet,isServer) :void 画布的构造函数,为类结构必须有的函数。主要用于加载游戏资源(图片、软键),并初始化参数,包括屏幕尺寸、提示字符串的参数,以及我方是否为服务器,默认情况下客户端先落子,而先落子方采用黑色棋子。
Pu: commandAction(Command,Displayable) :void 由于画布实现了按键监听的接口,所以必须重写此函数。
Pu: paint(Graphics g) :void 为画布类结构必须有的函数。在此函数中绘制所有界面。主要画面包括棋盘、棋子和提示字符串。棋盘根据尺寸属性(calcSize()方法计算所得的所有尺寸保存在属性里)绘制线条并填充棋盘底色,棋子根据BTFIRLogic所保存的棋盘数组中的内容绘制不同颜色的棋子(1为黑色,2为白色)。
Pro:keyPressed(int keyCode) :void 为画布类结构必须有的函数。用户界面的输入部分支持键盘输入,键盘的上下左右键能让引导框移动,当玩家按下确定键(fire)后,进行落子,如果落子成功,则发送消息(connection.sendMessage())通知对方;如果是无效的落子,则不进行任何操作。
Pu: repaintAt(int row,int col) :void 自定义重新绘制函数。当玩家在某个位置落子时,游戏画布并不重新绘制整个屏幕,而是仅仅绘制发生变化的小范围区域,这样能减少整个绘制操作的的
工作量,对提高游戏性能有所帮助。根据指定行和列绘制区域。
Pu: newStage() :void 游戏新开局时(BTFIRMIDlet中)调用此方法,该方法根据己方落子颜色(构造时传入)创建游戏逻辑对象,并设置游戏中使用的标志位,在默认情况下,客户端先手,