资源简介
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++ UDP穿透NATP2P原理及代码.rar
- VC++ USB接口编程(代码)
- VC++ 轨迹运动源码
- 颜色渐变的进度条vc++
- 计算机网络编程vc++学生管理系统
- 向量类的设计与实现 VC++6.0
- RSA加解密源码VC++实现
- mfc实现画图板源码+实验报告
- DAA算法 VC++实现 画线
- 优秀开源项目基于VC++和MFC基于VC++和
- 基于vc++的波形显示源码
- VC++软键盘源码和QQ软键盘差不多哦
- VC++制作程序安装向导完整源码实现
- 简易的VC++点对点文件传输
- MFC实现计算器 vC++
- VC++工资管理系统
- VC++点阵字生成器(MFC)
- 40G郁金香VC++游戏辅助制作视频教程如
- 防火墙C++源码,测试可以运行
- vc++简易图形编辑器MFC
- VC++ 串口实现双机互联 包含视窗加代
- VC++ MFC 如何用 CZip CUnzip类压缩解压缩
- OpenGL纹理贴图源程序.rar
- Vc++6.0MFC入门教程,很好的资源。
- VC++6.0 MFC 超简易计算器
- 多个定时器的 Timer VC++
- VC++铰链四杆机构运动仿真编程-
- vc++读取shp文件源码
- VC++MFC编程
- VC++穿透sock5代理访问防火墙以外的程
评论
共有 条评论