searchengine.h
来自「一个人工智能下象棋的小游戏 含电子书 包含了alph-beta 深度优先 极大」· C头文件 代码 · 共 36 行
H
36 行
// SearchEngine.h: interface for the CSearchEngine class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_SEARCHENGINE_H__BB587890_EEF2_40F3_8DF0_6D90D3A45939__INCLUDED_)
#define AFX_SEARCHENGINE_H__BB587890_EEF2_40F3_8DF0_6D90D3A45939__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include "MoveGenerator.h"
#include "Eveluation.h"
class CSearchEngine
{
public:
CSearchEngine();
virtual ~CSearchEngine();
virtual void SearchAGoodMove(BYTE position[10][9],int IsRed)=0;//博弈接口,为当前局面走出下一步
virtual SetSearchDepth(int nDepth){m_nSearchDepth = nDepth;};//设定最大搜索深度
virtual SetEveluator(CEveluation *pEval){m_pEval = pEval;};//设定估值引擎
virtual SetMoveGenerator(CMoveGenerator *pMG){m_pMG = pMG;};//设定走法产生器
protected:
virtual BYTE MakeMove(CHESSMOVE* move);//根据某一走法产生走了之后的棋盘
virtual void UnMakeMove(CHESSMOVE* move,BYTE type);//恢复某一走法所产生棋盘为走过之前的
virtual int IsGameOver(BYTE position[10][9], int nDepth);//用于判断当前局面是否已分出胜负
BYTE CurPosition[10][9]; //搜索时用于当前节点棋盘状态的数组
CHESSMOVE m_cmBestMove; //记录最佳走法的变量
CMoveGenerator *m_pMG; //走法产生器指针
CEveluation *m_pEval;//估值核心指针
int m_nSearchDepth;//最大搜索深度
int m_nMaxDepth;//当前搜索的最大搜索深度
};
#endif // !defined(AFX_SEARCHENGINE_H__BB587890_EEF2_40F3_8DF0_6D90D3A45939__INCLUDED_)
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?