资源简介
VC++写的一个中国象棋程序,附有详细注释,VC++6.0开发环境,适合学习

代码片段和文件信息
//Download by http://www.NewXing.com
// AlphaBetaEngine.cpp: implementation of the CAlphaBetaEngine class.
//
//////////////////////////////////////////////////////////////////////
#include “stdafx.h“
#include “AlphaBetaEngine.h“
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CAlphaBetaEngine::CAlphaBetaEngine()
{
}
CAlphaBetaEngine::~CAlphaBetaEngine()
{
}
CAlphaBetaEngine::SearchAGoodMove(BYTE position[][9])
{
memcpy(CurPositionposition90); //将当前局面复制到CurPosition
m_nMaxDepth=m_nSearchDepth; //设定搜索深度
AlphaBeta(m_nMaxDepth-2000020000);//进行alphabeta搜索
m_umUndoMove.cmChessMove=m_cmBestMove;
m_umUndoMove.nChessID=MakeMove(&m_cmBestMove);
memcpy(positionCurPosition90); //将走过的棋盘传出
}
int CAlphaBetaEngine::AlphaBeta(int nDepthint alphaint beta)
{
int score;
int Counti;
BYTE type;
i=IsGameOver(CurPositionnDepth);//检查是否游戏结束
if(i!=0)
return i;//结束,返回估值
//叶子节点取估值
if(nDepth<=0)
return m_pEval->Eveluate(CurPosition(m_nMaxDepth-nDepth)%2m_nUserChessColor);
//此函数找出当前局面所有可能的走法,然后放进m_pMG ->m_MoveList当中
Count=m_pMG->CreatePossibleMove(CurPositionnDepth(m_nMaxDepth-nDepth)%2m_nUserChessColor);
if(nDepth==m_nMaxDepth)
{
//在根节点设定进度条
m_pThinkProgress->SetRange(0Count);
m_pThinkProgress->SetStep(1);
}
//对所有可能的走法
for(i=0;i {
if(nDepth==m_nMaxDepth)
m_pThinkProgress->StepIt();//走进度条
type=MakeMove(&m_pMG->m_MoveList[nDepth][i]); //将当前局面应用此走法,变为子节点的局面
score=-AlphaBeta(nDepth-1-beta-alpha); //递归搜索子节点
UnMakeMove(&m_pMG->m_MoveList[nDepth][i]type);//将此节点的局面恢复为当前节点
if(score>alpha)
{
alpha=score;//保留极大值
//靠近根节点时保留最佳走法
if(nDepth==m_nMaxDepth)
m_cmBestMove=m_pMG->m_MoveList[nDepth][i];
}
if(alpha>=beta)
break;//剪枝,放弃搜索剩下的节点
}
return alpha;//返回极大值
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
....... 134736 2004-09-18 10:54 www.NewXing.com\SourceCode\Chess.aps
....... 9190 2001-07-06 15:55 www.NewXing.com\SourceCode\res\bitmap1.bmp
....... 77574 2004-07-10 20:34 www.NewXing.com\SourceCode\res\bmp00001.bmp
....... 5160 2004-08-17 10:55 www.NewXing.com\SourceCode\res\cancle.bmp
....... 5160 2004-08-17 10:55 www.NewXing.com\SourceCode\res\ok.bmp
....... 645338 2004-08-01 10:30 www.NewXing.com\SourceCode\棋盘倒.bmp
....... 961326 2000-07-23 21:23 www.NewXing.com\SourceCode\棋盘正.bmp
....... 290 2000-07-20 16:04 www.NewXing.com\SourceCode\残局\八阵图.cm
....... 290 2000-07-19 20:59 www.NewXing.com\SourceCode\残局\乌龙摆尾.cm
文件 2236 2012-12-21 09:44 www.NewXing.com\SourceCode\Alphabeta_HH.cpp
文件 2784 2012-12-21 09:44 www.NewXing.com\SourceCode\AlphaBeta_TTEngine.cpp
文件 2147 2012-12-21 09:44 www.NewXing.com\SourceCode\AlphaBetaEngine.cpp
文件 1247 2012-12-21 09:44 www.NewXing.com\SourceCode\AspirationSearch.cpp
文件 2087 2012-12-21 09:44 www.NewXing.com\SourceCode\Chess.cpp
文件 49202 2012-12-21 09:44 www.NewXing.com\SourceCode\ChessDlg.cpp
文件 6187 2012-12-21 09:44 www.NewXing.com\SourceCode\CoolButton.cpp
文件 20114 2012-12-21 09:44 www.NewXing.com\SourceCode\Eveluation.cpp
文件 2219 2012-12-21 09:44 www.NewXing.com\SourceCode\FAlphaBetaEngine.cpp
文件 4577 2012-12-21 09:44 www.NewXing.com\SourceCode\GradientProgressCtrl.cpp
文件 1712 2012-12-21 09:44 www.NewXing.com\SourceCode\HelpDlg.cpp
文件 2681 2012-12-21 09:44 www.NewXing.com\SourceCode\HistoryHeuristic.cpp
文件 2789 2012-12-21 09:44 www.NewXing.com\SourceCode\IDAlphabetaEngine.cpp
文件 1300 2012-12-21 09:44 www.NewXing.com\SourceCode\MemDC.cpp
文件 18401 2012-12-21 09:44 www.NewXing.com\SourceCode\MoveGenerator.cpp
文件 3275 2012-12-21 09:44 www.NewXing.com\SourceCode\MTD_fEngine.cpp
文件 2246 2012-12-21 09:44 www.NewXing.com\SourceCode\NegaMaxEngine.cpp
文件 2849 2012-12-21 09:44 www.NewXing.com\SourceCode\NegaScout_TT_HH.cpp
文件 2490 2012-12-21 09:44 www.NewXing.com\SourceCode\PVS_Engine.cpp
文件 2589 2012-12-21 09:44 www.NewXing.com\SourceCode\SearchEngine.cpp
文件 9469 2012-12-21 09:44 www.NewXing.com\SourceCode\SetDlg.cpp
............此处省略64个文件信息
- 上一篇:C/C++仿真实现Linux文件系统
- 下一篇:C语言图书管理系统源代码
相关资源
- VC++ 多线程文件读写操作
- 移木块游戏,可以自编自玩,vc6.0编写
- VC++MFC小游戏实例教程(实例)+MFC类库
- VC++实现CMD命令执行与获得返回信息
- VC++基于OpenGL模拟的一个3维空间模型
- 基于VC++的SolidWorks二次开发SolidWorks
- 智商超高的中国象棋游戏源码(C++版
- 派克变换VC++源码(附文档)
- VC++ 串口
- VC++ 大富翁4_大富翁游戏源码
- VC++ 摄像头视频采集与回放源程序
- 转 VC++ 实现电子邮件(Email)发送
- 基于MFC的VC++仿QQ浏览器源码(雏形)
- VC++ 服务程序编写及安装与卸载
- VC++6.0番茄西红柿VAXvirsual assist X完美破
- 基于改进的fcm算法的图像分割vc++
- VC++6.0 绿色版,免安装,非常好用。
- Microsoft Visual C++ 2005 Redistributable Pack
- VC++MFC课程设计的学生成绩管理系统
- 大智慧365DLL插件设计
- VC++6.0汉化包
- VC++完整商业界面源码(再上传)
- VC++编程技术600个大型项目源码.rar
- VC++实现RSA加密算法
- VC++ 中国象棋经典游戏源代码
- 郁金香VC++游戏辅助视频教程
- C语言进阶源码---基于graphics实现图书
- 摄影测量相对定向VC++程序
- c++ 课程设计_中国象棋
- VC++数字图像处理典型算法及实现
评论
共有 条评论