• 大小: 1.71MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-09-02
  • 语言: Java
  • 标签: Java  

资源简介

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\meta-INF\MANIFEST.MF

     文件      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\ChessMainframe$1.class

     文件        679  2006-01-09 23:44  Java中国象棋源码程序\www.gusucode.com\org\acerge\main\ChessMainframe$2.class

     文件       2130  2006-01-09 23:44  Java中国象棋源码程序\www.gusucode.com\org\acerge\main\ChessMainframe$3.class

     文件        724  2006-01-09 23:44  Java中国象棋源码程序\www.gusucode.com\org\acerge\main\ChessMainframe$4.class

     文件       1966  2006-01-09 23:44  Java中国象棋源码程序\www.gusucode.com\org\acerge\main\ChessMainframe$ConnectActionListener.class

     文件       1824  2006-01-09 23:44  Java中国象棋源码程序\www.gusucode.com\org\acerge\main\ChessMainframe$LastNextTurnBackButtonListener.class

     文件       2204  2006-01-09 23:44  Java中国象棋源码程序\www.gusucode.com\org\acerge\main\ChessMainframe$LocalMessageListener.class

     文件       1111  2006-01-09 23:44  Java中国象棋源码程序\www.gusucode.com\org\acerge\main\ChessMainframe$OpenSaveButtonListener.class

     文件       2630  2006-01-09 23:44  Java中国象棋源码程序\www.gusucode.com\org\acerge\main\ChessMainframe$PictureBoardMouseListener.class

     文件       2126  2006-01-09 23:44  Java中国象棋源码程序\www.gusucode.com\org\acerge\main\ChessMainframe$PieceMouseListener.class

     文件       4317  2006-01-09 23:44  Java中国象棋源码程序\www.gusucode.com\org\acerge\main\ChessMainframe$RemoteMessageListener.class

............此处省略140个文件信息

评论

共有 条评论