www.pudn.com > gamec11 > LandMine.h


#if !defined(AFX_LANDMINE_H__A9CDCEE6_B81F_11D2_B0BB_D010738FA02C__INCLUDED_) 
#define AFX_LANDMINE_H__A9CDCEE6_B81F_11D2_B0BB_D010738FA02C__INCLUDED_ 
 
typedef enum{ MS_NORMAL,MS_OPEN,MS_FLAG,MS_QUEST,MS_EXPLODE} MINESTATUS; 
 
class CMineButton 
{ 
private: 
	MINESTATUS m_nStatus; 
	int m_nMineNum; 
	CWnd *m_pParent; 
	int m_nX,m_nY; 
public:	 
	CMineButton() 
	{ 
		m_nMineNum = 0; 
	} 
	void Create(CWnd *pParent,int nX,int nY,int nMineNum=0) 
	{ 
		m_pParent = pParent; 
		m_nMineNum = nMineNum; 
		m_nStatus = MS_NORMAL; 
		m_nX = nX; 
		m_nY = nY; 
 
	} 
	int OpenMine(); 
	void SetStatus(MINESTATUS nStatus) 
	{ 
		m_nStatus = nStatus; 
	} 
	MINESTATUS GetStatus() 
	{ 
		return m_nStatus; 
	} 
	void SetMineNum(int nMineNum) 
	{ 
		m_nMineNum = nMineNum; 
	} 
	int GetMineNum() 
	{ 
		return m_nMineNum; 
	} 
	void operator ++() 
	{ 
		++m_nMineNum; 
	//	return m_nMineNum; 
	} 
	void DrawItem(BOOL bFail=TRUE); 
	void ButtonDown(int Status); 
}; 
 
 
class CLandMine 
{ 
private: 
	int m_nRow,m_nCol; 
	int m_nMineNum; 
	int m_nX,m_nY; 
	int m_nOldMine; 
	int m_aMineTest[9]; 
	int m_nMineTest; 
	CMineButton *m_aLandMine[10000]; 
	CWnd *m_pParent; 
 
public: 
	 
	CLandMine() 
	{ 
		m_nRow=m_nCol=m_nMineNum=0; 
	}; 
	~CLandMine() 
	{ 
		int nI; 
		for(nI=0;nI0) 
			return nCurMine+1; 
		else 
			return -1; 
	} 
	int GetLeft(int nCurMine) 
	{ 
		if (nCurMine%m_nCol>0) 
			return nCurMine-1; 
		else 
			return -1; 
	} 
	int GetTop(int nCurMine) 
	{ 
		if(nCurMine-m_nCol<0) 
			return -1; 
		else 
			return nCurMine-m_nCol; 
	} 
	int GetBot(int nCurMine) 
	{ 
		if(m_nCol*m_nRow>m_nCol+nCurMine) 
			return nCurMine+m_nCol; 
		else 
			return -1; 
 
	} 
 
}; 
 
#endif /* !define AFX_LANDMINE_H__A9CDCEE6_B81F_11D2_B0BB_D010738FA02C__INCLUDED_ */