00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00047 #ifndef _BASICPLAYER_
00048 #define _BASICPLAYER_
00049
00050 #include "ActHandler.h"
00051
00052 extern Logger Log;
00058 class BasicPlayer
00059 {
00060 protected:
00061 ActHandler *ACT;
00062 WorldModel *WM;
00063 ServerSettings *SS;
00064 PlayerSettings *PS;
00066
00067
00068 SoccerCommand alignNeckWithBody ( );
00069 SoccerCommand turnBodyToPoint ( VecPosition pos,
00070 int iPos = 1 );
00071 SoccerCommand turnBackToPoint ( VecPosition pos,
00072 int iPos = 1 );
00073 SoccerCommand turnNeckToPoint ( VecPosition pos,
00074 SoccerCommand com );
00075 SoccerCommand searchBall ( );
00076 SoccerCommand dashToPoint ( VecPosition pos );
00077 SoccerCommand freezeBall ( );
00078 SoccerCommand kickBallCloseToBody ( AngDeg ang );
00079 SoccerCommand accelerateBallToVelocity( VecPosition vel );
00080 SoccerCommand catchBall ( );
00081 SoccerCommand communicate ( char *str );
00082 SoccerCommand teleportToPos ( VecPosition pos );
00083
00085
00086 SoccerCommand turnBodyToObject ( ObjectT o );
00087 SoccerCommand turnNeckToObject ( ObjectT o,
00088 SoccerCommand com );
00089 SoccerCommand moveToPos ( VecPosition posTo,
00090 AngDeg angWhenToTurn,
00091 double dDistDashBack = 0.0,
00092 bool bMoveBack = false );
00093 SoccerCommand interceptClose ( );
00094 SoccerCommand interceptCloseGoalie ( );
00095 SoccerCommand kickTo ( VecPosition posTarget,
00096 double dEndSpeed );
00097 SoccerCommand turnWithBallTo ( AngDeg ang,
00098 AngDeg angKickThr,
00099 double dFreezeThr );
00100 SoccerCommand moveToPosAlongLine ( VecPosition pos,
00101 AngDeg ang,
00102 double dDistThr,
00103 int iSign,
00104 AngDeg angThr,
00105 AngDeg angCorr );
00106
00107
00109
00110 SoccerCommand intercept ( bool isGoalie );
00111 SoccerCommand dribble ( AngDeg ang,
00112 DribbleT d );
00113 SoccerCommand directPass ( VecPosition pos,
00114 PassT passType );
00115 SoccerCommand leadingPass ( ObjectT o,
00116 double dDist );
00117 SoccerCommand throughPass ( ObjectT o,
00118 VecPosition posEnd,
00119 AngDeg *angMax = NULL );
00120 SoccerCommand outplayOpponent ( ObjectT o,
00121 VecPosition pos,
00122 VecPosition *posTo = NULL );
00123 SoccerCommand clearBall ( ClearBallT type,
00124 SideT s = SIDE_ILLEGAL,
00125 AngDeg *angMax = NULL );
00126 SoccerCommand mark ( ObjectT o,
00127 double dDist,
00128 MarkT mark );
00129 SoccerCommand defendGoalLine ( double dDist );
00130 SoccerCommand interceptScoringAttempt ( );
00131
00133
00134 VecPosition getThroughPassShootingPoint( ObjectT objTeam,
00135 VecPosition posEnd,
00136 AngDeg *angMax );
00137 VecPosition getInterceptionPointBall( int *iCyclesBall,
00138 bool isGoalie );
00139 VecPosition getShootPositionOnLine ( VecPosition p1,
00140 VecPosition p2,
00141 AngDeg *angLargest = NULL );
00142 double getEndSpeedForPass ( ObjectT o,
00143 VecPosition posPass );
00144 VecPosition getMarkingPosition ( ObjectT o,
00145 double dDist,
00146 MarkT mark );
00147 } ;
00148
00149 #endif