人機博弈之(六)------代碼實現(1)常量數據

package constdata;

//數據表示
//


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,  3651,  5632},
        
{000,    0,  00,  0,    00},
        
{040,    0,  00,  0,    40},
        
{7,  07,  0,  7,  0,  7,     07},
        
{000,    0,  00,  0,    00},
        
{000,    0,  00,  0,    00},
        
{14,  014,     0,  14,  0,  14014},
        
{0110,    0,  00,  0,    110},
        
{000,    0,  00,  0,    00},
        
{9,   1013128,  121310,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)));
    }


}
 
發佈了36 篇原創文章 · 獲贊 3 · 訪問量 15萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章