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

📄 serversettings.cpp

📁 自己写的robocup-2d程序
💻 CPP
📖 第 1 页 / 共 5 页
字号:
                                     // delta for adjusting dash_power_rate
  dNewDashPowerRateDeltaMax = 0.002; // dash_power_rate_delta_max: maximum 
                                     // delta for adjusting dash_power_rate
  dNewStaminaIncMaxDeltaFactor=-100000.0;// stamina_inc_max_delta_factor: 
	                             // amount by which delta is multiplied for
                                     // stamina_inc_max

  // important server parameters not in server.conf or player.conf
  dEffortMax         = 1.0; // effort_max: maximum player effort capacity
  iSlowDownFactor    = 1;   // slow_down_factor: factor to slow down simulator
                            // and send intervals
  dVisibleDistance   = 3.0; // visible_distance: distance within which objects
                            // are always 'visible' even when not in view cone)
  dExtraStamina      = 0.0; // extra_stamina: extra stamina for heterogeneous
                            // player

  // penalty parameters
  dPenDistX          = 11.0;         // pen_dist_x: distance ball from goal
  dPenMaxGoalieDistX = 4.0;          // pen_goalie_max_dist_x: maximum distance
                                     // for goalie during penalties
  bPenAllowMultKicks = false;        // pen_allow_mult_kicks: can penalty 
                                     // kicker kick multiple times

  // tackle parameters
  dTackleDist        = 2.0;          // tackle_dist: allowed distance in front 
  dTackleBackDist    = 0.5;          // tackle_back_dist: allowed distance back
  dTackleWidth       = 1.0;          // tackle_width: allowed distance side
  dTackleExponent    = 6;            // tackle_exponent: exponent need 
  iTackleCycles      = 10;           // tackle_cycles: cycles immobile 
  dTacklePowerRate   = 0.027;        // tackle_power_rate: power rate tackle

  // parameters which depend on other values
  dMaximalKickDist = dKickableMargin +   // the maximum distance from a player
                     dPlayerSize +       // for which the ball is kickable
                     dBallSize;

  // add all the settings, i.e. each parameter
  // becomes a new generic value for the class

  // goal-related parameters
  addSetting( "goal_width"        , &dGoalWidth       , GENERIC_VALUE_DOUBLE );

  // player-related parameters
  addSetting( "player_size"       , &dPlayerSize      , GENERIC_VALUE_DOUBLE );
  addSetting( "player_decay"      , &dPlayerDecay     , GENERIC_VALUE_DOUBLE );
  addSetting( "player_rand"       , &dPlayerRand      , GENERIC_VALUE_DOUBLE );
  addSetting( "player_weight"     , &dPlayerWeight    , GENERIC_VALUE_DOUBLE );
  addSetting( "player_speed_max"  , &dPlayerSpeedMax  , GENERIC_VALUE_DOUBLE );
  addSetting( "player_accel_max"  , &dPlayerAccelMax  , GENERIC_VALUE_DOUBLE );

  // stamina-related parameters
  addSetting( "stamina_max"       , &dStaminaMax      , GENERIC_VALUE_DOUBLE );
  addSetting( "stamina_inc_max"   , &dStaminaIncMax   , GENERIC_VALUE_DOUBLE );
  addSetting( "recover_dec_thr"   , &dRecoverDecThr   , GENERIC_VALUE_DOUBLE );
  addSetting( "recover_dec"       , &dRecoverDec      , GENERIC_VALUE_DOUBLE );
  addSetting( "recover_min"       , &dRecoverMin      , GENERIC_VALUE_DOUBLE );
  addSetting( "effort_dec_thr"    , &dEffortDecThr    , GENERIC_VALUE_DOUBLE );
  addSetting( "effort_dec"        , &dEffortDec       , GENERIC_VALUE_DOUBLE );
  addSetting( "effort_inc_thr"    , &dEffortIncThr    , GENERIC_VALUE_DOUBLE );
  addSetting( "effort_inc"        , &dEffortInc       , GENERIC_VALUE_DOUBLE );
  addSetting( "effort_min"        , &dEffortMin       , GENERIC_VALUE_DOUBLE );

  // parameters related to auditory perception
  addSetting( "hear_max"          , &iHearMax         , GENERIC_VALUE_INTEGER);
  addSetting( "hear_inc"          , &iHearInc         , GENERIC_VALUE_INTEGER);
  addSetting( "hear_decay"        , &iHearDecay       , GENERIC_VALUE_INTEGER);

  // parameters related to player turn actions
  addSetting( "inertia_moment"    , &dInertiaMoment   , GENERIC_VALUE_DOUBLE );

  // parameters related to sense_body information
  addSetting( "sense_body_step"   , &iSenseBodyStep   , GENERIC_VALUE_INTEGER);

  // goalkeeper-related parameters
  addSetting( "catchable_area_l"  , &dCatchableAreaL  , GENERIC_VALUE_DOUBLE );
  addSetting( "catchable_area_w"  , &dCatchableAreaW  , GENERIC_VALUE_DOUBLE );
  addSetting( "catch_probability" , &dCatchProbability, GENERIC_VALUE_DOUBLE );
  addSetting( "catch_ban_cycle"   , &iCatchBanCycle   , GENERIC_VALUE_INTEGER);
  addSetting( "goalie_max_moves"  , &iGoalieMaxMoves  , GENERIC_VALUE_INTEGER);

  // ball-related parameters
  addSetting( "ball_size"         , &dBallSize        , GENERIC_VALUE_DOUBLE );
  addSetting( "ball_decay"        , &dBallDecay       , GENERIC_VALUE_DOUBLE );
  addSetting( "ball_rand"         , &dBallRand        , GENERIC_VALUE_DOUBLE );
  addSetting( "ball_weight"       , &dBallWeight      , GENERIC_VALUE_DOUBLE );
  addSetting( "ball_speed_max"    , &dBallSpeedMax    , GENERIC_VALUE_DOUBLE );
  addSetting( "ball_accel_max"    , &dBallAccelMax    , GENERIC_VALUE_DOUBLE );

  // wind-related parameters
  addSetting( "wind_force"        , &dWindForce       , GENERIC_VALUE_DOUBLE );
  addSetting( "wind_dir"          , &dWindDir         , GENERIC_VALUE_DOUBLE );
  addSetting( "wind_rand"         , &dWindRand        , GENERIC_VALUE_DOUBLE );
  addSetting( "wind_random"       , &bWindRandom      , GENERIC_VALUE_BOOLEAN);
  // parameters related to 'dash' and 'kick' commands
  addSetting( "kickable_margin"   , &dKickableMargin  , GENERIC_VALUE_DOUBLE );
  addSetting( "ckick_margin"      , &dCkickMargin     , GENERIC_VALUE_DOUBLE );
  addSetting( "dash_power_rate"   , &dDashPowerRate   , GENERIC_VALUE_DOUBLE );
  addSetting( "kick_power_rate"   , &dKickPowerRate   , GENERIC_VALUE_DOUBLE );
  addSetting( "kick_rand"         , &dKickRand        , GENERIC_VALUE_DOUBLE );

  // parameters related to visual and auditory perception range
  addSetting( "visible_angle"     , &dVisibleAngle    , GENERIC_VALUE_DOUBLE );
  addSetting( "audio_cut_dist"    , &dAudioCutDist    , GENERIC_VALUE_DOUBLE );

  // quantization parameters
  addSetting( "quantize_step"     , &dQuantizeStep    , GENERIC_VALUE_DOUBLE );
  addSetting( "quantize_step_l"   , &dQuantizeStepL   , GENERIC_VALUE_DOUBLE );

  // range parameters for basic actuator commands
  addSetting( "maxpower"          , &iMaxPower        , GENERIC_VALUE_INTEGER);
  addSetting( "minpower"          , &iMinPower        , GENERIC_VALUE_INTEGER);
  addSetting( "maxmoment"         , &iMaxMoment       , GENERIC_VALUE_INTEGER);
  addSetting( "minmoment"         , &iMinMoment       , GENERIC_VALUE_INTEGER);
  addSetting( "maxneckmoment"     , &iMaxNeckMoment   , GENERIC_VALUE_INTEGER);
  addSetting( "minneckmoment"     , &iMinNeckMoment   , GENERIC_VALUE_INTEGER);
  addSetting( "maxneckang"        , &iMaxNeckAng      , GENERIC_VALUE_INTEGER);
  addSetting( "minneckang"        , &iMinNeckAng      , GENERIC_VALUE_INTEGER);

  // port-related parameters
  addSetting( "port"              , &iPort            , GENERIC_VALUE_INTEGER);
  addSetting( "coach_port"        , &iCoachPort       , GENERIC_VALUE_INTEGER);
  addSetting( "ol_coach_port"     , &iOlCoachPort     , GENERIC_VALUE_INTEGER);

  // coach-related parameters
  addSetting( "say_coach_cnt_max" , &iSayCoachCntMax  , GENERIC_VALUE_INTEGER);
  addSetting( "say_coach_msg_size", &iSayCoachMsgSize , GENERIC_VALUE_INTEGER);
  addSetting( "clang_win_size"    , &iClangWinSize    , GENERIC_VALUE_INTEGER);
  addSetting( "clang_define_win"  , &iClangDefineWin  , GENERIC_VALUE_INTEGER);
  addSetting( "clang_meta_win"    , &iClangMetaWin    , GENERIC_VALUE_INTEGER);
  addSetting( "clang_advice_win"  , &iClangAdviceWin  , GENERIC_VALUE_INTEGER);
  addSetting( "clang_info_win"    , &iClangInfoWin    , GENERIC_VALUE_INTEGER);
  addSetting( "clang_mess_delay"  , &iClangMessDelay  , GENERIC_VALUE_INTEGER);
  addSetting("clang_mess_per_cycle",&iClangMessPerCycle,GENERIC_VALUE_INTEGER);
  addSetting( "send_vi_step"      , &iSendViStep      , GENERIC_VALUE_INTEGER);

  // time-related parameters
  addSetting( "simulator_step"    , &iSimulatorStep   , GENERIC_VALUE_INTEGER);
  addSetting( "send_step"         , &iSendStep        , GENERIC_VALUE_INTEGER);
  addSetting( "recv_step"         , &iRecvStep        , GENERIC_VALUE_INTEGER);
  addSetting( "half_time"         , &iHalfTime        , GENERIC_VALUE_INTEGER);
  addSetting( "drop_ball_time"    , &iDropBallTime    , GENERIC_VALUE_INTEGER);

  // speech-related parameters
  addSetting( "say_msg_size"      , &iSayMsgSize      , GENERIC_VALUE_INTEGER);

  // offside-related parameters
  addSetting( "use_offside"       , &bUseOffside      , GENERIC_VALUE_BOOLEAN);
  addSetting( "offside_active_area_size", &dOffsideActiveAreaSize,
                                                        GENERIC_VALUE_DOUBLE );
  addSetting( "forbid_kick_off_offside" , &bForbidKickOffOffside ,
                                                        GENERIC_VALUE_BOOLEAN);
  addSetting( "offside_kick_margin",&dOffsideKickMargin,GENERIC_VALUE_DOUBLE );

  // log-related parameters
  addSetting( "verbose"           , &bVerbose         , GENERIC_VALUE_BOOLEAN);
  addSetting( "record_version"    , &iRecordVersion   , GENERIC_VALUE_INTEGER);
  addSetting( "record_log"        , &bRecordLog       , GENERIC_VALUE_BOOLEAN);
  addSetting( "send_log"          , &bSendLog         , GENERIC_VALUE_BOOLEAN);
  addSetting( "log_times"         , &bLogTimes        , GENERIC_VALUE_BOOLEAN);
  addSetting( "log_file"          , &strLogFile       , GENERIC_VALUE_STRING );
  addSetting( "synch_mode"        , &bSynchMode       , GENERIC_VALUE_BOOLEAN);
  addSetting( "fullstate_l"       , &bFullStateL      , GENERIC_VALUE_BOOLEAN);
  addSetting( "fullstate_r"       , &bFullStateR      , GENERIC_VALUE_BOOLEAN);
 
  // heterogeneous player parameters from player.conf
  addSetting( "player_types"      , &iPlayerTypes     , GENERIC_VALUE_INTEGER);
  addSetting( "subs_max"          , &iSubsMax         , GENERIC_VALUE_INTEGER);
  addSetting( "player_speed_max_delta_min"  , &dPlayerSpeedMaxDeltaMin  ,
                                                        GENERIC_VALUE_DOUBLE );
  addSetting( "player_speed_max_delta_max"  , &dPlayerSpeedMaxDeltaMax  ,
                                                        GENERIC_VALUE_DOUBLE );
  addSetting( "stamina_inc_max_delta_factor", &dStaminaIncMaxDeltaFactor,
                                                        GENERIC_VALUE_DOUBLE );
  addSetting( "player_decay_delta_min"      , &dPlayerDecayDeltaMin     ,
                                                        GENERIC_VALUE_DOUBLE );
  addSetting( "player_decay_delta_max"      , &dPlayerDecayDeltaMax     ,
                                                        GENERIC_VALUE_DOUBLE );
  addSetting( "inertia_moment_delta_factor" , &dInertiaMomentDeltaFactor,
                                                        GENERIC_VALUE_DOUBLE );
  addSetting( "dash_power_rate_delta_min"   , &dDashPowerRateDeltaMin   ,
                                                        GENERIC_VALUE_DOUBLE );
  addSetting( "dash_power_rate_delta_max"   , &dDashPowerRateDeltaMax   ,
                                                        GENERIC_VALUE_DOUBLE );
  addSetting( "player_size_delta_factor"    , &dPlayerSizeDeltaFactor   ,
                                                        GENERIC_VALUE_DOUBLE );
  addSetting( "kickable_margin_delta_min"   , &dKickableMarginDeltaMin  ,
                                                        GENERIC_VALUE_DOUBLE );
  addSetting( "kickable_margin_delta_max"   , &dKickableMarginDeltaMax  ,
                                                        GENERIC_VALUE_DOUBLE );
  addSetting( "kick_rand_delta_factor"      , &dKickRandDeltaFactor     ,
                                                        GENERIC_VALUE_DOUBLE );
  addSetting( "extra_stamina_delta_min"     , &dExtraStaminaDeltaMin    ,
                                                        GENERIC_VALUE_DOUBLE );
  addSetting( "extra_stamina_delta_max"     , &dExtraStaminaDeltaMax    ,
                                                        GENERIC_VALUE_DOUBLE );
  addSetting( "effort_max_delta_factor"     , &dEffortMaxDeltaFactor    ,
                                                        GENERIC_VALUE_DOUBLE );
  addSetting( "effort_min_delta_factor"     , &dEffortMinDeltaFactor    ,
                                                        GENERIC_VALUE_DOUBLE );
  addSetting( "new_dash_power_rate_delta_min", &dNewDashPowerRateDeltaMin   ,
                                                        GENERIC_VALUE_DOUBLE );
  addSetting( "new_dash_power_rate_delta_max", &dNewDashPowerRateDeltaMax   ,
                                                        GENERIC_VALUE_DOUBLE );
  addSetting( "new_stamina_inc_max_delta_factor", &dNewStaminaIncMaxDeltaFactor
                                                      ,GENERIC_VALUE_DOUBLE  );
  
  // penalty parameters
  addSetting( "pen_dist_x"        , &dPenDistX        , GENERIC_VALUE_DOUBLE );
  addSetting("pen_goalie_max_dist_x",&dPenMaxGoalieDistX,GENERIC_VALUE_DOUBLE);
  addSetting("pen_allow_mult_kicks",&bPenAllowMultKicks,GENERIC_VALUE_BOOLEAN);

  // tackle parameters
  addSetting( "tackle_dist"       , &dTackleDist      , GENERIC_VALUE_DOUBLE );
  addSetting( "tackle_back_dist"  , &dTackleBackDist  , GENERIC_VALUE_DOUBLE );
  addSetting( "tackle_width"      , &dTackleWidth     , GENERIC_VALUE_DOUBLE );
  addSetting( "tackle_exponent"   , &dTackleExponent  , GENERIC_VALUE_DOUBLE );
  addSetting( "tackle_cycles"     , &iTackleCycles    , GENERIC_VALUE_INTEGER);
  addSetting( "tackle_power_rate" , &dTacklePowerRate , GENERIC_VALUE_DOUBLE );
 
  // important server parameters not in server.conf or player.conf - are now
  addSetting( "effort_max"        , &dEffortMax       , GENERIC_VALUE_DOUBLE );
  addSetting( "slow_down_factor"  , &iSlowDownFactor  , GENERIC_VALUE_INTEGER);
  addSetting( "visible_distance"  , &dVisibleDistance , GENERIC_VALUE_DOUBLE );
  addSetting( "extra_stamina"     , &dExtraStamina    , GENERIC_VALUE_DOUBLE );

  // parameters which depend on other values
  addSetting( "dMaximalKickDist"  , &dMaximalKickDist , GENERIC_VALUE_DOUBLE );
}

/*! This method is originally defined in the superclass GenericValues and is
    overridden in this subclass. It sets the variable denoted by the first
    argument to the value denoted by the second argument.
    \param strName a string representing the name of a variable for which the
    value must be (re)set
    \param strValue a string representing a value which must be assigned to the
    variable denoted by the first argument
    \return a boolean indicating whether the update was successful */
bool ServerSettings::setValue( const char *strName, const char *strValue )
{
  // call to the superclass method
  bool bReturn = GenericValues::setValue( strName, strValue );
  // compute values for parameters which depend on others (reason for override)
  dMaximalKickDist = ( dKickableMargin + dPlayerSize + dBallSize );

  return ( bReturn );
}

/*! This method is originally defined in the superclass GenericValues and is
    overridden in this subclass. It reads the values from a server 
    configuration file and assigns them to the proper variables in this class.
    \param strFileName a string representing the name of a configuration file
    \param strSeparator a string representing the separator between the name of
    a variable and its value
    \return a boolean indicating whether the values were read correctly */
bool ServerSettings::readValues( const char *strFileName, 
                                 const char *strSeparator )
{
  // call to the superclass method
  bool bReturn = GenericValues::readValues( strFileName, strSeparator );
  // compute values for parameters which depend on others (reason for override)
  dMaximalKickDist = ( dKickableMargin + dPlayerSize + dBallSize );

  return ( bReturn );
}

/*! Set method for the 'dGoalWidth' member variable.
    \param d a double value representing a new width of the goal
    \return a boolean indicating whether the update was successful */
bool ServerSettings::setGoalWidth( double d )
{
  dGoalWidth = d;
  return ( true );
}

/*! Get method for the 'dGoalWidth' member variable.
    \return the width of the goal */
double ServerSettings::getGoalWidth( ) const
{
  return ( dGoalWidth );
}

/*! Set method for the 'dPlayerSize' member variable.
    \param d a double value representing a new player size
    \return a boolean indicating whether the update was successful */
bool ServerSettings::setPlayerSize( double d )
{
  dPlayerSize = d;
  // NOTE: also update parameters for which the value depends on this variable
  dMaximalKickDist = ( dKickableMargin + dPlayerSize + dBallSize );

  return ( true );
}

/*! Get method for the 'dPlayerSize' member variable.
    \return the size (=radius) of a player */
double ServerSettings::getPlayerSize( ) const
{
  return ( dPlayerSize );
}

/*! Set method for the 'dPlayerDecay' member variable.
    \param d a double value representing a new player speed decay per cycle
    \return a boolean indicating whether the update was successful */
bool ServerSettings::setPlayerDecay( double d )
{
  dPlayerDecay = d;
  return ( true );
}

⌨️ 快捷键说明

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