📄 worldmodel.h
字号:
#ifndef WORLDMODEL_H#define WORLDMODEL_H#include "geometry.h"#include "myQueue.h"#include "param.h"#include "file.h"#include "command.h"#define VMAX 1.616#define DASH_K 2.51038 #define BALL_K_GROUND 0.2113037527#define BALL_K_AIR 0.3#define G 9.81#define STEP 2#define DELAY 0/**build the worldmodel@author root*/namespace MSpace {struct MoveState{ Vec PositionV; Vec speed;};struct Vision{ long cycle; Pol posP; Vec posV;};class Worldmodel{public: Worldmodel(); double GetHalfLength(); double GetHalfWidth(); double GetHalfGoalWidth(); int GetMyNumber(); double GeGoalDepth(); double GetBallMass(); double GetAgentMass(); double GetNowCycle(); Vec GetOpponentGoal(); Vec GetOurGoal(); //double GetThe std::string GetPlayMode(); bool IsUsKickOff(); bool IsBallInAir(); bool Updata(); void UpMystate(); void ForeseeMyState(); void UpBallState();//Up ball state MoveState GetFutureMyState(long Cycle,Vec F); void SetMyPosition(const Vec v); double WhereBall(); MoveState GetBallState_ground(long cycle,int &reliable);//foresee ball state on ground in cycle MoveState GetBallState_air(long cycle,int &reliable);//foresee ball state in cycle in air MoveState GetTeamMateState(int number,long cycle); MoveState GetOpponentState(int number,long cycle); MoveState GetMyState(); Vec GetStrategy(int num); Vec GetMyStrategy(); void SetFormation(int n); int WhoIsClosestToBall(); bool IsMeClosestToBall(); //the followings are used for testing Vec GetTeamMatePosV(int number);//return the latest message Vec GetOpponentPosV(int number);//return the latest message Pol GetTeamMatePosP(int number);//return the latest message Vec GetMeV();//return the latest message Pol GetOpponentPosP(int number);//return the latest message Vec GetBallV();//return the latest message MoveState GetBallState(); Vec ForeseeFallPoint(double &t,Vec &v,int &reliable); Vec InterceptBall(double &leftTime, int &reliable); Pol GetBallP();//return the latest message ~Worldmodel(); double Get_V0_XY_sv(double s_XY,double v_t_XY,double k); double Get_t_Z(double v0_z,double s_z); double Get_t_XY_v(double v0_XY,double Vt_XY,double k); double Get_v0_Z_st(double s_z,double t_z); double Get_v0_Z_vt(double vt_z,double t_z); double Get_s_XY(double v0_XY,double t_XY,double k);private: double Get_Vt_Z(double v0_z,double t_z); double Get_s_Z(double v0_z,double t_z); double Get_t_XY(double v0_XY,double s_XY,double k); double Get_V0_XY_tv(double t_XY,double v_t_XY,double k); double Get_V0_XY_st(double s_XY,double t_XY,double k); double Get_Vt_XY(double v0_XY,double t_XY,double k); Vec GetMyPosition();//don't use often, use GetMeP() instead. MoveState Mystate; bool MeStop; bool BallStop; MoveState Ballstate; long LastStateCycle; long NowCycle; int formation; queue <Vision>BallQ; queue <Vision>MeQ; queue <Vision>TeamMateVQ[11]; queue <Vision>OpponentVQ[11];};}#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -