人机博弈之(六)------代码实现(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)));
    }


}
 

人机博弈之(六)------代码实现(4)估值

package eveluation;import constdata.ConstData;import java.awt.Point;public class Eveluation...{    /...
  • dremi
  • dremi
  • 2007年09月24日 22:49
  • 1220

人机博弈之(六)------代码实现(3)搜索引擎

package searchengine;import chessmovedata.ChessMoveData;import constdata.ConstData;import movegenera...
  • dremi
  • dremi
  • 2007年09月23日 16:20
  • 1354

人机博弈之(一)------博弈介绍

       爱好编程的大部分还是喜欢自己编写一个游戏,但较少是编写和电脑对战的游戏,因为里面毕竟涉及博弈,搜索等技术,我想来通编写一个人机博弈的中国象棋游戏,希望从中收获些东西。参考书是王小春编著的...
  • dremi
  • dremi
  • 2007年09月23日 15:36
  • 2821

中国象棋人机对弈搜索算法学习-极大极小值,负极大值,alpha-beta算法

先参考学习如下博文: http://blog.csdn.net/kingkong1024/article/details/7639401 http://hk.gamfe.com/news/2015...
  • qq_26437925
  • qq_26437925
  • 2016年04月07日 18:48
  • 2374

中国象棋的人机博弈程序

对此题目有兴趣的朋友们:    感谢你们抽出宝贵的时间来阅读这些浅显的文字。    很多人可能都知道chess的人机大战:     1996年,卡斯帕罗夫以4比2战胜“深蓝”(Deep Blue); ...
  • shaozz
  • shaozz
  • 2009年03月10日 09:53
  • 1118

人机博弈之(六)------代码实现(2)走法产生器

package movegenerator;//走法产生器import constdata.ConstData;import chessmovedata.ChessMoveData;//一个走法的结构...
  • dremi
  • dremi
  • 2007年09月23日 16:12
  • 1652

五子棋人机对弈代码——之博弈树算法

#include #include #include #include /* Program of Game -- wuziqi Written by Zhang shuai, DEC.25t...
  • handsomesunshineboy
  • handsomesunshineboy
  • 2011年02月09日 07:03
  • 13163

java五子棋人机对战算法分析

五子棋人机对战采用的算法,目前大都是搜索树算法,用一棵树来表示棋局发展的 种种可能性,这种树叫做博弈树(对局树)。根节点表示对局的开始状态,每一种可 能的走法造成的结果作为其子节点,而对每一个这样的子...
  • zzzypp
  • zzzypp
  • 2015年01月13日 15:59
  • 3972

javascript人机博弈--黑白棋

最近,在研究计算机人工智能中人机博弈的一些算法,用javascript写了个人机对战的 黑白棋 游戏。 放上来大家帮忙测试一下,看看棋力强度怎么样,有没有bug,走昏招之类的。 这程序主要在研...
  • jslang
  • jslang
  • 2015年07月01日 17:48
  • 1866

【源码】斗地主人机对战程序算法2012完整版

点宽即时通讯(DOTWIDE)通讯员(陈飞飞),我尽情享受阳光的照射和海风的吹拂,我连忙按键盘,我最喜欢的就是小马车了,妈妈带我去乡下奶奶家,雨水在树叶上留下了亮晶晶的小水珠,可美了,原来是谭老师邀请...
  • i_like_cpp
  • i_like_cpp
  • 2012年12月13日 12:00
  • 2566
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:人机博弈之(六)------代码实现(1)常量数据
举报原因:
原因补充:

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