32#ifndef RCSC_COACH_COACH_WORLD_MODEL_H
33#define RCSC_COACH_COACH_WORLD_MODEL_H
52class CoachVisualSensor;
76 std::string M_our_team_name;
77 std::string M_their_team_name;
88 std::shared_ptr< AudioMemory > M_audio_memory;
97 CoachWorldState::List M_state_list;
98 CoachWorldState::Map M_state_map;
100 SideID M_last_kicker_side;
101 int M_last_kicker_unum;
117 std::vector< int > M_available_player_type_id;
119 int M_our_substitute_count;
120 int M_their_substitute_count;
122 int M_our_player_type_id[11];
123 int M_their_player_type_id[11];
126 std::vector< int > M_our_player_type_used_count;
128 std::vector< int > M_their_player_type_used_count;
135 Card M_their_card[11];
141 long M_last_playon_start;
143 long M_clang_capacity_update_time;
144 int M_clang_capacity[CLANG_MAX_TYPE];
146 int M_freeform_allowed_count;
147 int M_freeform_send_count;
165 void init(
const std::string & team_name,
167 const int client_version );
182 return *M_audio_memory;
204 const std::string & name );
260 void updateCLangCapacity();
271 void updatePlayerType();
276 void updateLastKicker();
281 void updateLastPasser();
346 return M_client_version;
364 return ( M_our_side == RIGHT ? LEFT : RIGHT );
373 return M_our_team_name;
382 return M_their_team_name;
391 return ( M_our_side == RIGHT
402 return ( M_our_side == RIGHT
404 : M_their_team_name );
452 return M_training_time;
461 return *M_current_state;
470 return M_current_state;
500 return M_current_state;
503 CoachWorldState::Map::const_iterator it = M_state_map.find(
GameTime(
time, 0 ) );
504 if ( it == M_state_map.end() )
520 return M_current_state;
523 CoachWorldState::Map::const_iterator it = M_state_map.find(
time );
524 if ( it == M_state_map.end() )
537 return M_current_state->ball();
546 return M_current_state->getBallStatus();
555 return M_current_state->allPlayers();
564 return ( M_our_side == RIGHT
565 ? M_current_state->opponents()
566 : M_current_state->teammates() );
575 return ( M_our_side == RIGHT
576 ? M_current_state->teammates()
577 : M_current_state->opponents() );
586 return M_current_state->teammates();
595 return M_current_state->opponents();
605 return M_current_state->teammate( unum );
615 return M_current_state->opponent( unum );
624 return M_last_kicker_side;
633 return M_last_kicker_unum;
651 return M_passer_unum;
660 return M_receiver_unum;
669 return M_pass_start_pos;
678 return M_pass_receive_pos;
691 return M_available_player_type_id;
701 const int type )
const;
709 return ( M_our_side == side
710 || ( M_our_side == NEUTRAL
712 ? M_our_substitute_count
713 : M_their_substitute_count );
722 return M_our_substitute_count;
731 return M_their_substitute_count;
742 const int unum )
const;
774 ? M_our_player_type_used_count
775 : M_their_player_type_used_count );
784 return M_our_player_type_used_count;
793 return M_their_player_type_used_count;
808 const int unum )
const;
818 const int unum )
const;
872 return M_last_playon_start;
890 return M_freeform_allowed_count;
899 return M_freeform_send_count;
918 return ( M_our_side == RIGHT
919 ? M_current_state->theirOffsideLineX()
920 : M_current_state->ourOffsideLineX() );
929 return ( M_our_side == RIGHT
930 ? M_current_state->ourOffsideLineX()
931 : M_current_state->theirOffsideLineX() );
940 return M_current_state->ourOffsideLineX();
949 return M_current_state->theirOffsideLineX();
971 std::ostream &
print( std::ostream & os )
const;
CLangType
clang message types
Definition: types.h:41
the memory of heard data
Definition: audio_memory.h:49
ball information for coath/trainer
Definition: coach_ball_object.h:44
player information for coath/trainer
Definition: coach_player_object.h:55
std::vector< const CoachPlayerObject * > Cont
container type of const CoachPlayerObject*
Definition: coach_player_object.h:59
visual sensor for coach/trainer
Definition: coach_visual_sensor.h:49
world world for coach
Definition: coach_world_model.h:58
const std::string & teamNameLeft() const
get left team name
Definition: coach_world_model.h:389
SideID theirSide() const
get opponent team side
Definition: coach_world_model.h:362
const std::vector< int > & theirPlayerTypeUsedCount() const
get their team's container of each player type's used count
Definition: coach_world_model.h:791
const Vector2D & passReceivePos() const
get the last heard pass receive position
Definition: coach_world_model.h:676
const GameTime & passTime() const
get the last heard pass time
Definition: coach_world_model.h:640
CoachWorldState::ConstPtr currentStatePtr() const
get the current state pointer.
Definition: coach_world_model.h:468
const std::string & teamNameRight() const
get right team name
Definition: coach_world_model.h:400
long lastPlayOnStart() const
get the playon period
Definition: coach_world_model.h:870
const std::string & theirTeamName() const
get opponent team name
Definition: coach_world_model.h:380
double ourOffsideLineX() const
get the offside line for our offense situation
Definition: coach_world_model.h:938
CoachWorldState::ConstPtr getState(const GameTime &time) const
get the state pointer at the specified game time
Definition: coach_world_model.h:516
const std::string & ourTeamName() const
get our team name
Definition: coach_world_model.h:371
void incFreeformSendCount()
increment freeform send count
const CoachPlayerObject * getPlayerNearestTo(const Vector2D &point) const
get player pointer nearest to the specified point
bool isYellowCarded(const SideID side, const int unum) const
get yellow card status
int ourPlayerTypeId(const int unum) const
get teammate's player type Id
Definition: coach_world_model.h:749
const CoachWorldState::Map & stateMap() const
get the state map. key: GameTime, value: CoachWorldState::ConstPtr
Definition: coach_world_model.h:486
void setServerParam()
init variables using received server_param information. This method have to be called just after serv...
void changePlayerType(const SideID side, const int unum, const int type)
this method have to be called just after change_player_type message is received.
const GameTime & trainingTime() const
get training start/end time
Definition: coach_world_model.h:450
const Vector2D & passStartPos() const
get the last heard pass start position
Definition: coach_world_model.h:667
void updateAll(const rcg::DispInfoT &disp)
update all information by using display data
bool isTeammateYellowCarded(const int unum) const
get teammate's yellow card status
Definition: coach_world_model.h:825
BallStatus getBallStatus() const
get the current ball position status
Definition: coach_world_model.h:544
const std::vector< int > & ourPlayerTypeUsedCount() const
get our team's container of each player type's used count
Definition: coach_world_model.h:782
const CoachPlayerObject::Cont & teammates() const
get teammate players' pointer
Definition: coach_world_model.h:584
int getSetPlayCount() const
get cycle count that setplay type playmode is keeped
Definition: coach_world_model.h:435
const CoachPlayerObject::Cont & allPlayers() const
get all players
Definition: coach_world_model.h:553
const GameMode & gameMode() const
get latest playmode info
Definition: coach_world_model.h:441
bool isTeammateRedCarded(const int unum) const
get teammate's red card status
Definition: coach_world_model.h:835
SideID lastKickerSide() const
get the estimated last ball kicker's team side
Definition: coach_world_model.h:622
const CoachWorldState & currentState() const
get the current state.
Definition: coach_world_model.h:459
bool canSubstitute(const int unum, const int type) const
check if online coach can substitute the specified teammate
bool canSendFreeform() const
check if coach can sent the freeform message now.
int substituteCount(const SideID side) const
get the number of change_player_type message after kickoff
Definition: coach_world_model.h:707
const CoachPlayerObject * teammate(const int unum) const
get the specified teammate.
Definition: coach_world_model.h:603
void updateGameMode(const GameMode &game_mode, const GameTime ¤t)
update playmode using heard referee info
const GameTime & seeTime() const
get last see global time
Definition: coach_world_model.h:420
bool canSendCLang(const CLangType type) const
check if the clang message can be sent now.
CoachWorldModel()
init member variables.
SideID ourSide() const
get our team side
Definition: coach_world_model.h:353
const GameTime & lastSetPlayStartTime() const
get last setplay type playmode start time
Definition: coach_world_model.h:429
int receiverUnum() const
get the last heard receiver's uniform number
Definition: coach_world_model.h:658
int ourSubstituteCount() const
get the number of our change_player_type message after kickoff
Definition: coach_world_model.h:720
const std::vector< int > & availablePlayerTypeId() const
get the current available player type id set for player substitution.
Definition: coach_world_model.h:689
int playerTypeId(const SideID side, const int unum) const
get the player type Id
void setCard(const SideID side, const int unum, const Card card)
set player's card status
const GameTime & time() const
get last updated time
Definition: coach_world_model.h:411
bool isOpponentRedCarded(const int unum) const
get opponent's red card status
Definition: coach_world_model.h:856
int freeformSendCount() const
get the freeform message send count
Definition: coach_world_model.h:897
double offsideLineXForLeft() const
get the offside line for left team
Definition: coach_world_model.h:916
int freeformAllowedCount() const
get the allowed freeform message count
Definition: coach_world_model.h:888
const CoachPlayerObject::Cont & playersRight() const
get right players' pointer
Definition: coach_world_model.h:573
int lastKickerUnum() const
get the estimated last ball kicker's uniform number
Definition: coach_world_model.h:631
const AudioMemory & audioMemory() const
get audio memory
Definition: coach_world_model.h:180
const CoachWorldState::List & stateList() const
get the state list.
Definition: coach_world_model.h:477
void decCLangCapacity(const CLangType type)
update clang capacity.
void setTeamName(const SideID side, const std::string &name)
set team name
bool isOpponentYellowarded(const int unum) const
get opponent's yellow card status
Definition: coach_world_model.h:845
void setAudioMemory(std::shared_ptr< AudioMemory > memory)
set new audio memory
void updateJustBeforeDecision(const GameTime ¤t)
update status using audio info
std::ostream & print(std::ostream &os) const
put all data to the output stream
const std::vector< int > & playerTypeUsedCount(const SideID side) const
get container of each player type's used count
Definition: coach_world_model.h:769
int theirSubstituteCount() const
get the number of their change_player_type message after kickoff
Definition: coach_world_model.h:729
CoachWorldState::ConstPtr getState(const int time) const
get the state pointer at the specified game time
Definition: coach_world_model.h:496
void setPlayerParam()
init variables using received player_param information. This method have to be called just after play...
const CoachPlayerObject * opponent(const int unum) const
get the specified teammate.
Definition: coach_world_model.h:613
bool isRedCarded(const SideID side, const int unum) const
get red card status
double offsideLineXForRight() const
get the offside line for right team
Definition: coach_world_model.h:927
void init(const std::string &team_name, const SideID side, const int client_version)
init by team name, team side, and client version
double theirOffsideLineX() const
get the offside line for their offense situation
Definition: coach_world_model.h:947
const CoachPlayerObject::Cont & playersLeft() const
get left players' pointer
Definition: coach_world_model.h:562
const CoachBallObject & ball() const
get the current ball data
Definition: coach_world_model.h:535
void setTrainingTime(const GameTime &t)
set training start/end time
Definition: coach_world_model.h:324
int theirPlayerTypeId(const int unum) const
get opponent's player type Id
Definition: coach_world_model.h:759
bool existKickablePlayer() const
check if kickable player exists or not
int passerUnum() const
get the last heard passer's uniform nuber
Definition: coach_world_model.h:649
void updateAfterSeeGlobal(const CoachVisualSensor &see_global, const GameTime ¤t)
update status using analyzed visual info
const CoachPlayerObject::Cont & opponents() const
get opponent players' pointer
Definition: coach_world_model.h:593
int clientVersion() const
get a client protocol version.
Definition: coach_world_model.h:344
a state of coach's internal model
Definition: coach_world_state.h:58
std::shared_ptr< CoachWorldState > Ptr
smart pointer type
Definition: coach_world_state.h:61
std::shared_ptr< const CoachWorldState > ConstPtr
smart const pointer type
Definition: coach_world_state.h:62
playmode(referee info) wrapper class
Definition: game_mode.h:50
game time object
Definition: game_time.h:43
long cycle() const
get normal time value
Definition: game_time.h:74
analyzer for opponent team players' player type
Definition: player_type_analyzer.h:51
2D point vector class
Definition: vector_2d.h:46
ball object class for coach/trainer Header file.
player object class for coach/trainer Header file.
coach/trainer world state class Header File
playmode wrapper Header File
game time depending on RCSSServer2D Header File
player type analyzer class Header File
display information
Definition: types.h:1131
the type definition set for the RCSSServer2D
SideID
side type definition
Definition: types.h:47
Card
card type
Definition: types.h:281
BallStatus
ball position status for coach/trainer
Definition: types.h:260