⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 penaltytricks.h

📁 该文件是包含了机器人足球比赛中的整个系统的代码
💻 H
字号:
#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 + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -