人机博弈之(六)------代码实现(1)常量数据

原创 2007年09月23日 16:08:00
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)));
    }


}
 

相关文章推荐

定义栈的数据结构,要求添加一个min函数,能够得到栈的最小元素。o(1)空间的代码实现

2.设计包含min函数的栈(栈) 定义栈的数据结构,要求添加一个min函数,能够得到栈的最小元素。 要求函数min、push以及pop的时间复杂度都是O(1)。 参考了http://blog...

#牛客#代码实现:字符串的匹配、字符串的交错组成、纸牌博弈、表达式组合

第一题:字符串与含有通用字符.*的字符串匹配问题 /*Problem:字符串匹配问题 给定字符串str,其中绝对不含有字符’.’和’*’。再给定字符串exp,其中可以含有’.’或’*’,’*’字符不能...

数据结构—中缀表达式转后缀表达式算法及实现—栈的应用—计算表达式(C++代码实现)(1)

理论: (这部分很重要,看明白了,可以写出实现算法) 表达式的表示形式有中缀、前缀和后缀3中形式。中缀表达式按操作符的优先级进行计算(后面代码实现只包括+、-、*、\,小括号),即数学运算。 后缀表...

用Java实现五子棋人机博弈

  • 2010年01月08日 20:11
  • 466KB
  • 下载

0/1背包的c++代码实现

  • 2013年11月27日 09:07
  • 1KB
  • 下载

100行代码实现最简单的基于FFMPEG+SDL的视频播放器(SDL1.x)

FFMPEG工程浩大,可以参考的书籍又不是很多,因此很多刚学习FFMPEG的人常常感觉到无从下手。我刚接触FFMPEG的时候也感觉不知从何学起。 因此我把自己做项目过程中实现的一个非常简单的视频播放器...

常见数据结构,代码实现

  • 2012年11月19日 16:01
  • 20KB
  • 下载

Unity3D&AI:寻路(1):A星寻路,在Unity上用C#代码实现。

A星寻路原理:略,网上可搜到通过理解A星寻路的原理可以设计出以下流程图: 流程图通过processon制作Unity C#脚本实现代码:各个坐标节点为单独的gameObject,并自带脚本:usin...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:人机博弈之(六)------代码实现(1)常量数据
举报原因:
原因补充:

(最多只允许输入30个字)