资源简介
Java中国象棋源码程序,作者将AI算法用得淋漓尽致,具有很高的学习研究价值。

代码片段和文件信息
package org.acerge.engine;
import java.io.Serializable;
import java.util.ArrayList;
public class ActiveBoard implements Serializable{
//Rank[x]File[x]Bottom[x] 比 x % 10x / 10x * 10运算快
public static final int[] RANK = {// File[19]=1Rank[19]=9;
0 1 2 3 4 5 6 7 8 9
0 1 2 3 4 5 6 7 8 9
0 1 2 3 4 5 6 7 8 9
0 1 2 3 4 5 6 7 8 9
0 1 2 3 4 5 6 7 8 9
0 1 2 3 4 5 6 7 8 9
0 1 2 3 4 5 6 7 8 9
0 1 2 3 4 5 6 7 8 9
0 1 2 3 4 5 6 7 8 9
};
public static final int FILE[] = {// File[12]=1Rank[12]=2;
0 0 0 0 0 0 0 0 0 0
1 1 1 1 1 1 1 1 1 1
2 2 2 2 2 2 2 2 2 2
3 3 3 3 3 3 3 3 3 3
4 4 4 4 4 4 4 4 4 4
5 5 5 5 5 5 5 5 5 5
6 6 6 6 6 6 6 6 6 6
7 7 7 7 7 7 7 7 7 7
8 8 8 8 8 8 8 8 8 8
};
public static final int[] BOTTOM = {
0 10 20 30 40 50 60 70 80
};
public static final int[] HORSE_LEG_TABLE = {//int
-10 0-10 0 0 0 0 0 0 -1 0
0 0 1 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 -1 0 0 0
1 0 0 0 0 0 0 10 0 10
//Move.Dst - Move.Src={-21-19-12-88121921}
//HorseLeg[Dst-Src+21]={-10-10-11-111010}:蹩马腿的增量
//Legal Move: return Squares[Move.Src + HorseLegTab[Move.Dst - Move.Src + 21]]==0
};
public static final int[] PIECE_TYPES = {
-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
0 1 1 2 2 3 3 4 4 5 5 6 6 6 6 6
7 8 8 9 9 10 10 11 11 12 12 13 13 13 13 13
};
public final static int MAX_MOVE_NUM = 256;
public final static int LOOP_HASH_MASK = 0x3ff;
public final static int MAX_CONSECUTIVE_MOVES = 200;
private int player; // 0 = Red(White) and 1 = Black
private int[] evalue;//int[2]Total Value of Red(0)/Black(1) Pieces
private int[] squares;//int[90]Piece Indexes of each square Squares[i] = 0:Unoccupied 16-31:Red 32-47 = Black
private int[] pieces;//int[48]Square Indexes of each piece -1 = Captured//被吃了
// Square[x]=y(y: index of PieceTypes in Square[x])
// Pieces[y]=x(y is the pieceType x represent pieceType Y in Square 5)
// x:index of location in board(0~89)
private int[] bitFiles;//[9]方便按行位纵线查询BitFiles[1]表示第1列(b纵线)上的棋子
private int[] bitRanks;//[10]方便按列位横线查询
private BitBoard[] pieceBits;//[14]分兵种及红黑的棋子位棋盘
private BitBoard allPieces;//整个棋盘
// Zobrist Key and Lock
private long zobristKey zobristLock;
// History MoveNodes用来作为循环重复检测
private int moveNum;
MoveNode[] moveList;//[ChessStruct.MaxMoveNum];
char[] loopHash;//[LoopHashMask + 1];
public ActiveBoard() {
int i;
player = 0;
evalue = new int[2];
evalue[0] = evalue[1] = 0;
squares = new int[90];
for (i = 0; i < 90; i ++) {
squares[i] = 0;
}
pieces = new int[48];
for (i = 16; i < 48; i ++) {
pieces[i] =
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 38015 2004-07-08 21:16 Java中国象棋源码程序\www.gusucode.com\commons-logging.jar
文件 9455379 2006-01-05 10:31 Java中国象棋源码程序\www.gusucode.com\data\book.txt
文件 84150 2006-01-10 02:36 Java中国象棋源码程序\www.gusucode.com\data\pieceObj
文件 68 2006-01-10 03:05 Java中国象棋源码程序\www.gusucode.com\me
文件 14200 2006-01-09 23:39 Java中国象棋源码程序\www.gusucode.com\org\acerge\engine\ActiveBoard.class
文件 6286 2006-01-09 23:39 Java中国象棋源码程序\www.gusucode.com\org\acerge\engine\BitBoard.class
文件 444 2006-01-09 23:39 Java中国象棋源码程序\www.gusucode.com\org\acerge\engine\BookRecord.class
文件 2581 2006-01-09 23:39 Java中国象棋源码程序\www.gusucode.com\org\acerge\engine\CCEvalue.class
文件 405 2006-01-09 23:39 Java中国象棋源码程序\www.gusucode.com\org\acerge\engine\EngineOption.class
文件 562 2006-01-09 23:39 Java中国象棋源码程序\www.gusucode.com\org\acerge\engine\HashRecord.class
文件 504 2006-01-09 23:39 Java中国象棋源码程序\www.gusucode.com\org\acerge\engine\KillerStruct.class
文件 363 2006-01-09 23:39 Java中国象棋源码程序\www.gusucode.com\org\acerge\engine\LostException.class
文件 1615 2006-01-09 23:39 Java中国象棋源码程序\www.gusucode.com\org\acerge\engine\MoveNode.class
文件 8315 2006-01-09 23:39 Java中国象棋源码程序\www.gusucode.com\org\acerge\engine\PreMoveNodesGen.class
文件 17710 2006-01-09 23:39 Java中国象棋源码程序\www.gusucode.com\org\acerge\engine\SearchEngine.class
文件 9024 2006-01-09 23:39 Java中国象棋源码程序\www.gusucode.com\org\acerge\engine\SortedMoveNodes.class
文件 1087 2006-01-09 23:39 Java中国象棋源码程序\www.gusucode.com\org\acerge\engine\TestNumShift.class
文件 441 2006-01-09 23:43 Java中国象棋源码程序\www.gusucode.com\org\acerge\main\CannotGetAgreeOnMoreThanThreeTimes.class
文件 609 2006-01-09 23:43 Java中国象棋源码程序\www.gusucode.com\org\acerge\main\ChessApp.class
文件 2418 2006-01-09 23:44 Java中国象棋源码程序\www.gusucode.com\org\acerge\main\ChessMainfr
文件 679 2006-01-09 23:44 Java中国象棋源码程序\www.gusucode.com\org\acerge\main\ChessMainfr
文件 2130 2006-01-09 23:44 Java中国象棋源码程序\www.gusucode.com\org\acerge\main\ChessMainfr
文件 724 2006-01-09 23:44 Java中国象棋源码程序\www.gusucode.com\org\acerge\main\ChessMainfr
文件 1966 2006-01-09 23:44 Java中国象棋源码程序\www.gusucode.com\org\acerge\main\ChessMainfr
文件 1824 2006-01-09 23:44 Java中国象棋源码程序\www.gusucode.com\org\acerge\main\ChessMainfr
文件 2204 2006-01-09 23:44 Java中国象棋源码程序\www.gusucode.com\org\acerge\main\ChessMainfr
文件 1111 2006-01-09 23:44 Java中国象棋源码程序\www.gusucode.com\org\acerge\main\ChessMainfr
文件 2630 2006-01-09 23:44 Java中国象棋源码程序\www.gusucode.com\org\acerge\main\ChessMainfr
文件 2126 2006-01-09 23:44 Java中国象棋源码程序\www.gusucode.com\org\acerge\main\ChessMainfr
文件 4317 2006-01-09 23:44 Java中国象棋源码程序\www.gusucode.com\org\acerge\main\ChessMainfr
............此处省略140个文件信息
相关资源
- 三角网构TIN生成算法,Java语言实现
- java代码编写将excel数据导入到mysql数据
- Java写的cmm词法分析器源代码及javacc学
- JAVA JSP公司财务管理系统 源代码 论文
- JSP+MYSQL旅行社管理信息系统
- 推荐算法的JAVA实现
- 基于Java的酒店管理系统源码(毕业设
- java-图片识别 图片比较
- android毕业设计
- java23种设计模式+23个实例demo
- java Socket发送/接受报文
- JAVA828436
- java界面美化 提供多套皮肤直接使用
- 在线聊天系统(java代码)
- 基于Java的图书管理系统807185
- java中实现将页面数据导入Excel中
- java 企业销售管理系统
- java做的聊天系统(包括正规课程设计
- Java编写的qq聊天室
- 商店商品管理系统 JAVA写的 有界面
- JAVA开发聊天室程序
- 在linux系统下用java执行系统命令实例
- java期末考试试题两套(答案) 选择(
- JAVA3D编程示例(建模、交互)
- Java 文件加密传输
- java做的房产管理系统
- 基于jsp的bbs论坛 非常详细
- [免费]java实现有障碍物的贪吃蛇游戏
- java Servlet投票实例
- 操作系统作业 (pv,作业管理,等5个
评论
共有 条评论