📄 cpathfinder.h
字号:
#ifndef _HEADER_CPATHFINDER_
#define _HEADER_CPATHFINDER_
#include <windows.h>
#include <stdio.h>
const int PATHFINDER_MAX_NODES = 1000;
const int PATHFINDER_DEF_COST = 10;
//-------------------------------------------------------------------
//
// PATH NODE CLASS
//
//-------------------------------------------------------------------
class CPathNode
{
private:
public:
CPathNode *m_Parent;
int m_iDistFromStartCost;
int m_iDistFromGoalCost;
int m_iTotalCost;
int m_iEnumerated;
int m_iX;
int m_iY;
void vReset( void );
CPathNode();
};
//-------------------------------------------------------------------
//
// PATH CLASS
//
//-------------------------------------------------------------------
class CPath
{
public:
CPathNode *m_Path[ PATHFINDER_MAX_NODES ];
int m_iNumNodes;
};
//-------------------------------------------------------------------
//
// PATH FINDER CLASS
//
//-------------------------------------------------------------------
class CPathFinder
{
private:
int m_iStartX;
int m_iStartY;
int m_iEndX;
int m_iEndY;
int m_iGoalFound;
int m_iGoalNode;
// Function pointer
int (*iGetMapCost)(int iX, int iY);
public:
CPathNode *m_OpenList;
CPathNode *m_ClosedList;
CPath *m_CompletePath;
int m_iActiveOpenNodes;
int m_iActiveClosedNodes;
CPathFinder();
~CPathFinder();
void vSetCostFunction( int (*ptr)(int,int) );
void vSetStartState( int iStartX, int iStartY, int iEndX, int iEndY );
int iGetGoalDistCost( int iX, int iY, int iCost = PATHFINDER_DEF_COST );
int iGetStartDistCost( int iParentStartCost, int iCost = PATHFINDER_DEF_COST );
bool bFindPath( int iMaxNodes = PATHFINDER_MAX_NODES );
bool bOpenNodes( CPathNode *node );
bool bDoesNotExistOnOpenList( int iX, int iY );
bool bDoesNotExistOnClosedList( int iX, int iY );
int iAddNodeToList( int iList, int iX, int iY, CPathNode *ParentNode, int iCost = PATHFINDER_DEF_COST );
int iFindCheapestNode();
void vResetPath( void );
};
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -