FireMonkey3D之中国象棋程序设计(六)完善算法
声明:本程序设计参考象棋巫师源码(开发工具dephi 11,建议用delphi 10.3以上版本)。
这一章主要完善算法。本章目标:
- 实现开局库;
- 实现PVS(主要变例搜索);
- 把根节点的搜索单独处理,增加搜索的随机性;
- 克服由长将引起的置换表的不稳定性。
6.1 实现开局库
开局库几乎是每个象棋程序必备的部件,它的好处是:
(1) 即使再笨的程序,开局库能使得它们在开局阶段看上去不那么业余;
(2) 通过随机选择走法,让开局灵活多变,增加对弈的趣味性。
我们程序使用开源象棋程序 ElephantEye 的开局库Book.dat文件,开局库文件的结构:
type BookItem=record dwLock:Cardinal; wmv, wvl:Word; end;