中国象棋顺序《兵河五四》版本:V0.72
 
作者:范德军
中国原子能迷信研讨院(北京)
 
  兵河五四,别名“冰河五四”,意味冰河时期刀光血影正在厮杀的古战场。五四,横五纵四,指点中国象棋棋盘上中兵的职位。称呼泉源于一传说中的古谱,红棋先手兵五进一,中兵开路,贪生怕死,只为扫清中路的阻滞。红棋车马炮悉数从中路突破,只进不退,只攻不守。正像传说中的古战场有一只戎行,名为“中花军”,厥后演化成中华的先祖。中国象棋之兵河五四,意味了中华先祖中道行、中庸之道、勇往直前的肉体。
 
一、简介
 
  《兵河五四》是开源的中国象棋引擎,支持《中国象棋通用引擎和谈》(Universal Chinese Chess Protocol,简称UCCI),能够用支持UCCI和谈的界面顺序加载。为了交流和增进象棋软件的生长,作者供应了的源代码,能够用于任何非商业目的。
 
二、主要博弈手艺
 
  1. 以后移动方
 
int Player;
 
  Player=0,为黑棋;Player=1,为红棋。1-Player,透露表现对方。
 
  2. 棋盘数组
 
int Board[256];
 
  其值为棋子序号,0为无子,16~31为黑子,32~47为红子,递次为:将车炮马象战士。运用256(16×16)个格子的棋盘,黑上红下。
00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f
10 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f
20 21 22 23 24 25 26 27 28 29 2a 2b 2c 2d 2e 2f
30 31 32 33 34 35 36 37 38 39 3a 3b 3c 3d 3e 3f
40 41 42 43 44 45 46 47 48 49 4a 4b 4c 4d 4e 4f
50 51 52 53 54 55 56 57 58 59 5a 5b 5c 5d 5e 5f
60 61 62 63 64 65 66 67 68 69 6a 6b 6c 6d 6e 6f
70 71 72 73 74 75 76 77 78 79 7a 7b 7c 7d 7e 7f
80 81 82 83 84 85 86 87 88 89 8a 8b 8c 8d 8e 8f
90 91 92 93 94 95 96 97 98 99 9a 9b 9c 9d 9e 9f
a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 aa ab ac ad ae af
b0 b1 b2 b3 b4 b5 b6 b7 b8 b9 ba bb bc bd be bf
c0 c1 c2 c3 c4 c5 c6 c7 c8 c9 ca cb cc cd ce cf
d0 d1 d2 d3 d4 d5 d6 d7 d8 d9 da db dc dd de df
e0 e1 e2 e3 e4 e5 e6 e7 e8 e9 ea eb ec ed ee ef
f0 f1 f2 f3 f4 f5 f6 f7 f8 f9 fa fb fc fd fe ff
  
  3. 棋子数组:
 
int Piece[48];
 
  其值为棋盘坐标,0透露表现不在棋盘上,非0值对应棋盘的职位。
 
  4. 着法数据组织:
 
unsigned long move;
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
unsigned short HistoryValue; unsigned char nSrc; unsigned char nDst;
unsigned char CheckingPiece; unsigned char CapturedPiece;
  5. 位行与位列:
 
unsigned long xBitBoard[16], yBitBoard[16];
const int xBitMask[256], yBitMask[256];
 
  位行与位列,替代了循环,异常精简而且高效。用于发生车炮的横向和纵向移动,车炮着法正当性校验,将军检测,盘算炮架子的职位,以及车炮非吃子移动的自在度。
 
  6. 着法预发生数组:
 
  7. 置换表:
 
  使用4次探察手艺,深度优先的准绳,每次搜索没需要消灭Hash表。
 
  8. 搜索手艺:
  • 残局:运用残局库中的着法
  • 中局:习惯性空着裁剪(Adaptive Null-Move Pruning)
  • 残局:带校验空着裁剪(Verified Null-Move Pruning)
  • 迭代加深搜索(Iterative Deepening)
  • 外部深度迭代(Internal Iterative Deepening)
  • 历史淘汰(History Pruning)
  • 幽静搜索(Quiescence Search)
  •   9. 着法排序:
  • 将军杀手
  • HashMove
  • 好的吃子移动
  • 杀手移动
  • 非吃子移动以及盈余的吃子移动,运用历史启示
  •   遇到将军局势,跳过杀手移动亲睦的吃子移动,运用将军逃避发生器天生解将的着法。现在还未完成非完整解将,以是还不能完成但一应着延长,但在很大水平上增加了将军剖断的次数。
     
      10. 估值函数:
     
      正在调试。
     
      迎接交流!
     
    联系体式格局
     
      QQ83021504
      eMailfan_de_jun<at>sina.com.cn
     
      下载所在:/league/bhws.7z
  • 上一篇 UCCI引擎——ANITA
  • 下一篇 UCCI引擎——理治棋壮
  • 返 回 象棋百科全书——计算机象棋联赛
  • www.xqbase.com