searchengine.h
来自「人工智能实现博弈,利用剪枝法搜索书,不过机器反应慢,但是人一般失误一次就输了!」· C头文件 代码 · 共 36 行
H
36 行
#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 + =
减小字号Ctrl + -
显示快捷键?