========================================================================
PC游戏编程(人机博弈)王小春 QQ:750673745
========================================================================
本象棋游戏共分为五大部分:(本代码由--金鹰教育--游戏开发与培训小组--注解)
========================================================================
第一部分:基本数据定义部分
功能描述:定义了各棋子对应编号的宏、判断棋子的宏、表示棋子位置和走棋的结构体。
实现代码:define.h文件中。
========================================================================
第二部分:走法产生器部分
功能描述:对于一个给定的棋局,产生出某一方下步合法的所有走法。
实现代码:类CMoveGenerator中。
========================================================================
第三部分:搜索引擎部分
功能描述:依据某一算法,从给定棋局的所有合法的下步走法中,找出针对某方最佳的走法。
实现代码:
1.CSearchEngine类:搜索引擎基类。
2.CNegaMaxEngine类:负极大值法搜索引擎。
3.CAlphaBetaEngine类:采用了Alpha-Beta剪枝技术的搜索引擎。
4.CFAlphaBetaEngine类:fail-softalpha-beta搜索引擎。
5.CTranspositionTable类:采用了置换表技术的搜索引擎基类。
6.CAlphaBeta_TTEngine类:加置换表的Alpha-Beta搜索引擎。
7.CHistoryHeuristic类:采用了历史启发技术的搜索引擎基类。
8.CAlphabeta_HHEngine类:带历史启发的Alpha-Beta搜索引擎。
9.CAlphaBeta_TT_HH类:加置换表和历史启发技术的Alpha-Beta搜索引擎。
========================================================================
第四部分:估值核心部分
功能描述:对于一个给定的棋局,估算双方各自的优劣。
实现代码:类CEveluation中。
说明:局面评估就是给棋局打分,识别棋局的好坏,以便在博弈树搜索时作为路径选择条件寻找最佳着法。可行的办法就是对局面进行量化,通过数值评判棋局的好坏。由于评估需要大量的象棋知识,仁者见仁,智者见智,评估函数的设计便成为计算机博弈中最为人性化的部分。一般评估函数要综合考虑以下几个方面:1、棋子价值,2、棋子位置,3、棋子灵活度,4、棋子配合,5、将帅安全等。
========================================================================
第五部分:操作界面部分
功能描述:实现象棋游戏的操作界面。
实现代码:
1.CChessDlg类:实现象棋游戏的主操作界面。
2.CNewGame类:实现设置并重新开始游戏的操作界面。
/////////////////////////////////////////////////////////////////////////////
评论0
最新资源