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

📄 searchengine.h

📁 人工智能实现博弈,利用剪枝法搜索书,不过机器反应慢,但是人一般失误一次就输了!
💻 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 + -