www.pudn.com > StrategyClass1.rar > StrategySystem.h, change:2006-02-24,size:5261b


// StrategySystem.h: interface for the CStrategySystem class. 
// 
////////////////////////////////////////////////////////////////////// 
 
#if !defined(AFX_STRATEGYSYSTEM_H__FA4DC9A8_2EE9_464D_B6F8_16815E8C9066__INCLUDED_) 
#define AFX_STRATEGYSYSTEM_H__FA4DC9A8_2EE9_464D_B6F8_16815E8C9066__INCLUDED_ 
 
#if _MSC_VER > 1000 
#pragma once 
#endif // _MSC_VER > 1000 
 
#include "Strategy.h" 
 
/******************************************************************** 
  坐标 
********************************************************************/ 
class CVector3D			 
{ 
public: 
	CVector3D& operator =(const Vector3D &vec3D); 
public: 
	double x, y, z; 
}; 
 
/******************************************************************** 
  球 
********************************************************************/ 
class CBall				 
{ 
public: 
	CBall& operator =(const Ball &ball); 
public: 
	CVector3D pos; 
}; 
 
/******************************************************************** 
  矩形区域 
********************************************************************/ 
class CBounds			 
{ 
public: 
	CBounds& operator =(const Bounds &bounds); 
public: 
	long left, right, top, bottom; 
}; 
 
/******************************************************************** 
  敌方机器人 
********************************************************************/ 
class COpponentRobot		 
{ 
public: 
	COpponentRobot& operator =(const OpponentRobot& oppRobot); 
public: 
	CVector3D pos; 
	double rotation; 
}; 
/******************************************************************** 
  本方机器人数据 
********************************************************************/ 
struct tagRobotData :public Robot 
{ 
	double dbVr; 
	double dbVl; 
}; 
 
/******************************************************************** 
  本方机器人 
********************************************************************/ 
class CRobot :public tagRobotData			 
{ 
public: 
	CRobot& operator =(const Robot &robot); 
	CVector3D pos; 
public: 
	void MoonFollowOpponent( COpponentRobot& opponent); 
//	CVector3D pos;                                       //机器人坐标 
//	double rotation;                                    //机器人方向角 
//	double velocityLeft, velocityRight;                 //机器人左右速度 
 
	void Position(const CVector3D& pos);			    //跑位函数 
	void Position(const double& x, const double& y); 
	void Velocity(const int& vl, const int& vr);		//速度设置函数 
}; 
 
 
 
/******************************************************************** 
  环境信息 
********************************************************************/ 
class CEnvironment			 
{ 
public: 
	CEnvironment& operator=(const Environment& env); 
public: 
	CRobot home[PLAYERS_PER_SIDE];                       //本方机器人数据 
	COpponentRobot opponent[PLAYERS_PER_SIDE];           //对方机器人数据 
	CBall currentBall, lastBall, predictedBall;          //球的数据(当前周期,上一周期,无下周期) 
	CBounds fieldBounds, goalBounds;                     //场地信息 
	long gameState;                                     //比赛状态                                
	long whosBall;                                      //控球方 
	void *userData;                                     //用户数据 
}; 
 
/******************************************************************** 
  策略 
********************************************************************/ 
class CStrategySystem 
{ 
public: 
	void MyAttack1(CRobot& robot,CRobot &robot1); 
	void GoalieAngle(); 
	void Role(); 
	void MyAttack(CRobot& robot);                       //进攻策略 
	void MyGoalie(CRobot& robot);                       //守门员策略 
	void MyAttackDefender(CRobot& robot);               //防守进攻策略 
	void MyDefender(CRobot& robot);                     //防守策略 
	void MyShoot(CRobot& robot);                        //射门策略 
	int MyMoveStyle(CVector3D BPoint, CVector3D RPoint);//移运策略(跟据实际情况进行相应的策略) 
	void PredictBall ();                                //预测球的位置 
	 
//	void Test(); 
	int MyGoalieMoveStyle(CVector3D BPoint);//守门员策略(跟据实际情况进行相应的策略) 
 
	CStrategySystem(Environment& env); 
	CStrategySystem(); 
 
 
	void Run(Environment& env);									//做相应的策略 
 
 
 
	virtual ~CStrategySystem(); 
 
protected: 
 
 
 
 
	//************************************************************* 
	//						不修改部分 
	void GetEnvironment(Environment& env);		//获得环境变量 
	void SetMyStrategy();						//设置小车的速度,释放指针 
	//********************************************************************** 
 
 
private: 
	//成员变量 
	CRobot m_Home[PLAYERS_PER_SIDE];                       //本方机器人数据 
	COpponentRobot m_Opponent[PLAYERS_PER_SIDE];           //对方机器人数据 
	CBall m_CurrentBall, m_LastBall, m_PredictedBall;      //球的数据(当前周期,上一周期,无下周期) 
	CBounds m_FieldBounds, m_GoalBounds;                   //场地信息 
	long m_GameState;                                      //比赛状态                                
	long m_WhosBall;                                       //控球方 
	void *m_pUserData;                                     //用户数据 
 
	Environment* m_pEnv; 
}; 
 
#endif // !defined(AFX_STRATEGYSYSTEM_H__FA4DC9A8_2EE9_464D_B6F8_16815E8C9066__INCLUDED_)