📄 basedmovegenerator.h
字号:
// BasedMoveGenerator.h: interface for the CBasedMoveGenerator class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_BASEDMOVEGENERATOR_H__A5D98A2B_981C_492F_A348_D0A7310D70C2__INCLUDED_)
#define AFX_BASEDMOVEGENERATOR_H__A5D98A2B_981C_492F_A348_D0A7310D70C2__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include <queue>
#include "Define.h"
#include "BasedEveluation.h"
using namespace std;
//走法产生器基类
class CBasedMoveGenerator
{
public:
CBasedMoveGenerator();
virtual ~CBasedMoveGenerator();
public:
virtual int CreatePossibleMove(BYTE byBoard[][3],int iPly,BYTE byDirect)=0;//产生最好的走法
bool IsValidMove(BYTE byBoard[][3],int x,int y);//是否是一个有效的移动
void MakeMove(BYTE byBoard[][3],CHESSMOVE cm);
void UnMakeMove(BYTE byBoard[][3],CHESSMOVE cm);
void SetEveluation(CBasedEveluation* pEval){m_pEval=pEval;};
protected:
void AddMove(CHESSMOVE cm,int iPly);//在m_MoveList中插入一个走法,nPly表明插入到List第几层
public:
CHESSMOVE m_MoveList[10][80];//存放CreatePossibleMove产生的所有走法的队列
protected:
int m_nMoveCount; //记录m_MoveList中走法的数量
CBasedEveluation* m_pEval; //估值核心
queue<CHESSMOVE> m_queueMove;//存放走法的队列
int m_iCurPly; //当前节点所在层数
};
#endif // !defined(AFX_BASEDMOVEGENERATOR_H__A5D98A2B_981C_492F_A348_D0A7310D70C2__INCLUDED_)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -