本作品为中国象棋人机对弈软件源代码,内置多种高效搜索算法,旨在为编程爱好者及研究者提供学习和探索的平台。
本人开发的机对弈程序采用了多种搜索算法。以下是本程序主要类别的描述:
1. CEvalution 类:估值类,用于评估给定棋盘的状态。
2. CMoveGenerator 类:走法产生器,根据当前局面生成所有可能的动作。
3. CSearchEngine 类:搜索引擎基类。
4. CNegaMaxEngine 类:负极大值搜索算法引擎。
5. CAplhaBetaEngine 类:带有Alpha-Beta剪枝技术的搜索引擎。
6. CFalphaBetaEngine 类:失败软化版Alpha-Beta搜索算法引擎。
7. CHistoryHeuristic 类:历史启发类,用于保存和利用先前的游戏信息以提高决策质量。
8. CAlphabeta_HHEngine 类:结合了历史启发与Alpha-Beta剪枝技术的搜索引擎。
9. CAspirationSearch 类:渴望式搜索策略引擎,旨在通过设置目标区间来优化搜索效率。
10. CIDAlphabetaEngine 类:迭代深化版Alpha-Beta算法搜索引擎,用于逐步增加搜索深度以寻找最佳走法。
11. CMTD_fEngine 类:使用了MTD(f)技术的搜索算法引擎。
12. CTranspositionTable 类:置换表类,存储已访问过的节点信息以便重复利用计算结果。
13. CAplhaBeta_TTEngine 类:结合Alpha-Beta剪枝技术和置换表的数据结构来提高效率和性能的搜索引擎。
14. CPVS_Engine 类:极小窗口搜索算法引擎,在一定范围内寻找最优解以减少不必要的探索。
15. CNegaScout_TT_HH类:集成了置换表技术与历史启发信息,用于优化NegaScout搜索策略。
此外,该程序还具备悔棋、还原游戏状态的功能,并能够记录走法和布局。开发过程中参考了王小春所著的《PC游戏编程(人机博弈)》一书作为重要参考资料。