//數據表示
//
public class ConstData
{
public final static byte NOCHESS = 0; //無子
//黑方
public final static byte B_KING = 1; //黑帥
public final static byte B_CAR = 2; //黑車
public final static byte B_HORSE = 3; //黑馬
public final static byte B_CANON = 4; //黑炮
public final static byte B_BISHOP = 5; //黑士
public final static byte B_ELEPHANT = 6; //黑象
public final static byte B_PAWN = 7; //黑兵
public final static byte B_BEGIN = 1;
public final static byte B_END = 7;
//紅方
public final static byte R_KING = 8; //紅將
public final static byte R_CAR = 9; //紅車
public final static byte R_HORSE = 10; //紅馬
public final static byte R_CANON = 11; //紅炮
public final static byte R_BISHOP = 12; //紅仕
public final static byte R_ELEPHANT = 13; //紅相
public final static byte R_PAWN = 14; //紅卒
public final static byte R_BEGIN = 8;
public final static byte R_END = 14;
//定義每種棋的價值
//兵100,士250,象250,馬350,炮350車500
public final static int BASEVALUE_PAWN = 100;
public final static int BASEVALUE_BISHOP = 250;
public final static int BASEVALUE_ELEPHANT = 250;
public final static int BASEVALUE_HORSE = 350;
public final static int BASEVALUE_CANON = 350;
public final static int BASEVALUE_CAR = 500;
public final static int BASEVALUE_KING = 10000;
//定義各種棋子的靈活性
//也就是每多一個可走位置應加上的值
//兵15,士1,象1,車6,馬12,炮6,王0
public final static int FLEXIBLE_PAWN = 15;
public final static int FLEXIBLE_BISHOP = 1;
public final static int FLEXIBLE_ELEPHANT = 1;
public final static int FLEXIBLE_HORSE = 12;
public final static int FLEXIBLE_CANON = 6;
public final static int FLEXIBLE_CAR = 6;
public final static int FLEXIBLE_KING = 0;
//初始棋盤
public final static byte INITCHESSBOARD[][]=
{
{2, 3, 6, 5, 1, 5, 6, 3, 2},
{0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 4, 0, 0, 0, 0, 0, 4, 0},
{7, 0, 7, 0, 7, 0, 7, 0, 7},
{0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0},
{14, 0, 14, 0, 14, 0, 14, 0, 14},
{0, 11, 0, 0, 0, 0, 0, 11, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0},
{9, 10, 13, 12, 8, 12, 13, 10,9}
};
//判斷chessID是否是黑棋
public static boolean isBlack(byte chessID)
{
return (chessID >= B_BEGIN && chessID <= B_END);
}
//判斷chessID是否是紅棋
public static boolean isRed(byte chessID)
{
return (chessID >= R_BEGIN && chessID <= R_END);
}
//判斷chessID1和chessID2是否是同色
public static boolean isSameSide(byte chessID1, byte chessID2)
{
return ( (isBlack(chessID1)&&isBlack(chessID2))||(isRed(chessID1) && isRed(chessID2)));
}
}