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

📄 cninegrid.h

📁 利用Visual c++编程思想方法实现九宫问题(八数码)求解过程动态演示的程序
💻 H
字号:
#include <time.h>
#include <vector>
#include <algorithm>

#define WM_UPDATE WM_USER + 1021

using namespace std;
class CNineGrid
{
public:
	struct PlaceList
    {
		DWORD		Place;
		PlaceList*	Left;
		PlaceList*	Right;
    };
	struct Scanbuf
	{
		DWORD Place;
		int ScanID;
	};
	struct PathList
	{
		unsigned char Path[9];
	};

private:
	PlaceList *m_pPlaceList;
	Scanbuf *m_pScanbuf;
	RECT m_rResetButton;
	RECT m_rAutoButton;

public:
	int m_iPathsize;
	clock_t m_iTime;
	UINT m_iStepCount;
	unsigned char m_iTargetChess[9];
	unsigned char m_iChess[9];
	HWND m_hClientWin;
	PathList *m_pPathList;
	bool m_bAutoRun;
	CEdit *m_pEdit;
	bool m_bCannDynamic;

private:
	inline bool AddTree(DWORD place , PlaceList*& parent);
	void FreeTree(PlaceList*& parent);
	inline void ArrayToDword(unsigned char *array , DWORD & data);
	inline void DwordToArray(DWORD data , unsigned char *array);
	inline bool MoveChess(unsigned char *array , int way);
	bool EstimateUncoil(unsigned char *array);
	void GetPath(UINT depth);
	
public:
	void Dynamic(int nStart , int nEnd , int nLine);
	void Init(CEdit *pEdit){m_pEdit = pEdit;}
	void MoveChess(int way);
	bool ComputeFeel();
	void ActiveShow(HWND hView);
	void Reset();
	bool OnButton(POINT pnt , HWND hView);
	
public:
	CNineGrid();
	~CNineGrid();
};

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -