资源简介

中国象棋vs2010源码, 带人工智能,人机对战

资源截图

代码片段和文件信息

// AlphaBetaEngine.cpp: implementation of the CAlphaBetaEngine class.
//
//////////////////////////////////////////////////////////////////////

#include “stdafx.h“
#include “AlphaBetaEngine.h“

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

CAlphaBetaEngine::CAlphaBetaEngine()
{

}

CAlphaBetaEngine::~CAlphaBetaEngine()
{

}

void 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;//返回极大值
}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       2114  2017-02-27 17:24  中国象棋VS2010\Source Code\AlphaBetaEngine.cpp

     文件        824  2017-02-27 17:25  中国象棋VS2010\Source Code\AlphaBetaEngine.h

     文件       2203  2017-02-27 17:25  中国象棋VS2010\Source Code\Alphabeta_HH.cpp

     文件        831  2017-02-27 17:23  中国象棋VS2010\Source Code\Alphabeta_HH.h

     文件       2751  2017-02-27 17:24  中国象棋VS2010\Source Code\AlphaBeta_TTEngine.cpp

     文件        845  2017-02-27 17:25  中国象棋VS2010\Source Code\AlphaBeta_TTEngine.h

     文件       1214  2017-02-27 17:25  中国象棋VS2010\Source Code\AspirationSearch.cpp

     文件        709  2017-02-27 17:23  中国象棋VS2010\Source Code\AspirationSearch.h

     文件     523580  2017-02-27 22:01  中国象棋VS2010\Source Code\Chess.aps

     文件       2049  2004-07-05 11:48  中国象棋VS2010\Source Code\Chess.cpp

     文件       1334  2004-08-23 20:19  中国象棋VS2010\Source Code\Chess.h

     文件      62976  2004-08-24 13:20  中国象棋VS2010\Source Code\Chess.opt

     文件      11374  2017-02-27 21:54  中国象棋VS2010\Source Code\Chess.rc

     文件        876  2017-02-27 17:15  中国象棋VS2010\Source Code\Chess.sln

    ..A..H.     31744  2017-02-28 18:39  中国象棋VS2010\Source Code\Chess.suo

     文件      10316  2017-02-27 17:14  中国象棋VS2010\Source Code\Chess.vcxproj

     文件       7466  2017-02-27 17:14  中国象棋VS2010\Source Code\Chess.vcxproj.filters

     文件        143  2017-02-27 17:57  中国象棋VS2010\Source Code\Chess.vcxproj.user

     文件      50501  2017-02-28 18:27  中国象棋VS2010\Source Code\ChessDlg.cpp

     文件       5458  2004-08-24 10:51  中国象棋VS2010\Source Code\ChessDlg.h

     文件       6149  2003-04-24 16:41  中国象棋VS2010\Source Code\CoolButton.cpp

     文件       1527  2003-04-24 16:41  中国象棋VS2010\Source Code\CoolButton.h

     文件     918016  2017-02-28 18:27  中国象棋VS2010\Source Code\Debug\Chess.exe

     文件       1534  2004-08-18 18:17  中国象棋VS2010\Source Code\Define.h

     文件      20076  2004-08-19 14:50  中国象棋VS2010\Source Code\Eveluation.cpp

     文件       2554  2004-08-19 14:37  中国象棋VS2010\Source Code\Eveluation.h

     文件       2186  2017-02-27 17:25  中国象棋VS2010\Source Code\FAlphaBetaEngine.cpp

     文件        823  2017-02-27 17:24  中国象棋VS2010\Source Code\FAlphaBetaEngine.h

     文件       4539  2004-08-17 14:32  中国象棋VS2010\Source Code\GradientProgressCtrl.cpp

     文件       2221  2004-08-17 14:29  中国象棋VS2010\Source Code\GradientProgressCtrl.h

............此处省略77个文件信息

评论

共有 条评论