📄 searchengine.h
字号:
#pragma once
#include "Eveluation.h"
#include "MoveGenerator.h"
class CSearchEngine
{
protected:
int IsGameOver(BYTE position[10][9],int nDepth);//判断是否已分胜负
BYTE MakeMove(CHESSMOVE* move); //根据某一走法产生走了之后的棋盘
void UnMakeMove(CHESSMOVE* move,BYTE nChessID); //恢复为走过之前的棋盘
public:
CSearchEngine(void);
virtual ~CSearchEngine(void);
//virtual SearchAGoodMove(BYTE position[10][9])=0; //走下一步
virtual BYTE SearchAGoodMove(BYTE position[10][9])=0;
CHESSMOVE GetBestMove(){return m_cmBestMove;}; //得到最佳走法
void SetSearchDepth(int nDepth){m_nSearchDepth=nDepth;};//设定最大搜索深度
void SetEveluator(CEveluation* pEval){m_pEval=pEval;}; //设定估值引擎
void SetMoveGenerator(CMoveGenerator* pMG){m_pMG =pMG;};//设定走法产生器
//设定用户为黑方或红方
void SetUserChessColor(int nUserChessColor){m_nUserChessColor=nUserChessColor;};
public:
int m_nUserChessColor;
BYTE CurPosition[10][9]; //搜索时用于记录当前节点棋盘状态的数组
CHESSMOVE m_cmBestMove; //记录最佳走法
UNDOMOVE m_umUndoMove;
CMoveGenerator* m_pMG; //走法产生器
CEveluation* m_pEval; //估值核心
int m_nSearchDepth; //最大搜索深度
int m_nMaxDepth; //当前搜索的最大搜索深度
};
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -