⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 searchengine.h

📁 一个人工智能下象棋的小游戏 含电子书 包含了alph-beta 深度优先 极大极小值算法
💻 H
字号:
// 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 + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -