penaltytricks.h

来自「该文件是包含了机器人足球比赛中的整个系统的代码」· C头文件 代码 · 共 83 行

H
83
字号
#ifndef PenaltyTricks_H
#define PenaltyTricks_H

// Bag of primarily movement tricks

#include "../Common/LocomotionCommand.h"
#include "../Common/HeadCommand.h"
#include "KickSelecta.h"
#include "Trick.h"

class PenaltyTricks {
public :
  class ChaseWithKick : public Trick {
  public:
    ChaseWithKick() {Init(1.0);}
    ChaseWithKick(double _chaseSlowDownRate) {Init(_chaseSlowDownRate);}
    void Init(double _chaseSlowDownRate);
    virtual ~ChaseWithKick();
    virtual int Start();
    virtual int Abort();
    virtual int Continue();
    virtual bool IsUsingHead();
    virtual char* GetName();
    virtual char* GetErrorMsg(int);
    virtual Trick* GetCurrentTrick() {return currentTrick; }
  private:
    bool justKicked;
    bool interruptible;
    Utilities utils;
    KickSelecta ks;
    Trick* currentTrick;
    Trick* headTrick;
    double chaseSlowDownRate;
  };

  class ChaseBall : public Trick {
  public: 
    ChaseBall() {Init(1.0);}
    ChaseBall(double _slowDownRate) {Init(_slowDownRate);}
    void Init(double _slowDownRate);
    virtual ~ChaseBall();
    virtual int Start();
    virtual int Abort();
    virtual int Continue();
    virtual bool IsUsingHead();
    virtual char* GetErrorMsg(int);
    virtual char* GetName();
  private :
    Utilities utils;
    Trick* headTrick;
    double underChinAngle;
    double slowDownRate;

    double maxWalkAroundDistance;

    double previousBallDistance;
    double minDistanceSincePrevious;

    double timeBallUnderChin;
  };

  class ComplexKick : public Trick {
  public:
    ComplexKick(double _normalTurnAmount, double _maxTurnAmount);
    ComplexKick(double _normalTurnAmount, double _maxTurnAmount, double _extraFastTurn);
    ComplexKick(Trick*);
    virtual ~ComplexKick();
    virtual int Start();
    virtual int Abort();
    virtual int Continue();
    virtual bool IsUsingHead();
    virtual char* GetErrorMsg(int);
    virtual char* GetName();
    virtual Trick* GetCurrentTrick() {return currentTrick; }
  private:
    Trick* currentTrick;
    Trick* turnTrick;
  };


};
#endif // PenaltyTricks_H

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?