www.pudn.com > 20077419401162.rar > snake.h


#if !defined(SNAKE_H) 
#define SNAKE_H 
#include 
#define SNAKE_TIMER 1 
class point 
{ 
public: 
	float x,y; 
}; 
class point_list 
{ 
public: 
	float x,y; 
	class point_list *next; 
}; 
class snake 
{ 
public: 
	snake(point * Snake_Point = NULL,int Point_Num = 0); 
	~snake() 
	{ 
		if(Snake_Point) 
			delete []Snake_Point; 
		if(Snake_Point) 
			delete []Pre_Snake_Point; 
		if(Img_Energy) 
			delete []Img_Energy; 
	} 
	void DrawPoints(HDC); 
	void StartTimer(HWND); 
	void SnakeAlgorithm(); 
	void PointToImg(class load_bmp_file &); 
	point ReadPoint(int Index); 
	void  WritePoint(point temp,int Index); 
	void SetPoints(int NumOfPoints); 
	void StorePoints(); 
	void AdjustCenter(class point &); 
	///////// 
	int  Point_Num; 
	int  No_Of_Mov; 
	char FileName[100]; 
	int  Window_Width,Window_Height; 
	point * Snake_Point; //relative position. 
	point * Pre_Snake_Point;//store the Pre 
	point Center; 
	BOOL Termination_Flag; 
	BOOL ShowPointFlag; 
	int  Img_Width,Img_Height; 
private: 
	////////// 
	float InternalEnergy(int No,point OffSet); 
	float ExternalEnergy(int No,point OffSet); 
 
	double Energy1(int No,point OffSet); 
	double Energy2(int No,point OffSet); 
	double Energy3(int No,point OffSet); 
	double Energy4(int No,point OffSet); 
 
	point MinEnergyPoint(int No); 
	point MovePoint(int Index); 
	float GetScore(point ShouldMove,point NowOffSet); 
	float Coefficient; 
	char *Img_Energy; 
}; 
 
#endif