資源簡介
中國象棋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個文件信息
- 上一篇:openmv+stm32+as608
- 下一篇:數據挖掘教程浙大PPT
評論
共有 條評論