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 + -
显示快捷键?