📄 ninegird.h
字号:
// NineGird.h: interface for the CNineGird class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_NINEGIRD_H__50E773E3_1675_44DC_BA9B_950747D0BC93__INCLUDED_)
#define AFX_NINEGIRD_H__50E773E3_1675_44DC_BA9B_950747D0BC93__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include <time.h>
#include <vector>
#include <algorithm>
using namespace std;
#define WM_UPDATAMSG WM_USER+100 //线程通信消息
struct Node//节点状态信息
{
DWORD dwNo;
DWORD dwStatus;
Node *pParents;
};
class CNineGird
{
public:
CNineGird();
virtual ~CNineGird();
public:
unsigned char m_iTargetChess[9];//目标状态
unsigned char m_iIniChess[9];//初始状态
CObList m_OpenList;//OPEN表
CObList m_ClosedList;//CLOSED表
CObList m_PathList;//搜索路径表
private:
BOOL bIsRunning;//是否在运行状态
public:
void CreateIniStatus(void);//产生初始状态
BOOL SearchTargetChess(unsigned char *ini,unsigned char *target,HWND hwnd);//搜索
//private:
bool EstimateUncoil(unsigned char *array);//目标解判定
inline void ArrayToDword(unsigned char *array , DWORD & data);//压缩到字
/*inline*/ void DwordToArray(DWORD data , unsigned char *array);//字解压到数组
inline bool MoveChess(unsigned char *array , int way);//移动(算子运算)
inline bool CompareTargetChess(unsigned char *current,unsigned char *target);//与目标状态比较
inline bool CompareTargetChess(DWORD dwCurrent,unsigned char *target);//与目标状态比较
inline bool FindNode_InOpenClosedList(DWORD dwNode);//在OPEN和CLOSED中查找目标节点
inline bool FindNode_IsParents(DWORD dwStatus,Node *pNode);//当前节点在父辈节点中是否出现
};
#endif // !defined(AFX_NINEGIRD_H__50E773E3_1675_44DC_BA9B_950747D0BC93__INCLUDED_)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -