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

📄 memoption.c

📁 RoboCup 2D 仿真组冠军源代码之1998年冠军队——CMUnited98源代码
💻 C
📖 第 1 页 / 共 2 页
字号:
/* -*- Mode: C++ -*- *//* MemOption.C * CMUnited98 (soccer client for Robocup98) * Peter Stone <pstone@cs.cmu.edu> * Computer Science Department * Carnegie Mellon University * Copyright (C) 1998 Peter Stone * * CMUnited-98 was created by Peter Stone, Manuela Veloso, and Patrick Riley * * You may copy and distribute this program freely as long as you retain this notice. * If you make any changes or have any comments we would appreciate a message. *//* MemOption.C contains all the client parameters * They can be specified as .conf files or command line options in the same style * as for soccerserver.  The code is based on Noda's soccerserver code. * * Parameters starting with SP_ are server parameters.  Most can be read from * the standard server.conf file * * Not all paramters listed here have meaning in the release version of CMUnited98 */#include "netif.h"#include "MemOption.h"/* setting defaults to match version 4.06 server.conf */OptionInfo::OptionInfo(){  VP_test_l   = FALSE;  VP_test_r   = FALSE;  VP_test     = FALSE;  VP_train_DT = FALSE;  VP_use_DT   = FALSE;  IP_my_score             = 0;  IP_their_score          = 0;  IP_reconnect            = 0;  sprintf(MyTeamName,     "CMUnited");  /* no option flags for these */  SP_pitch_length 	  = 105.0;  SP_pitch_width 	  = 68.0;  SP_pitch_margin	  = 5.0;  SP_penalty_area_length  = 16.5;  SP_penalty_area_width   = 40.32;  SP_goal_area_length	  = 5.5;  SP_goal_area_width	  = 18.32;  SP_penalty_spot_dist    = 11.0;  SP_corner_arc_r	  = 1.0;  SP_free_kick_buffer     = 9.15;  SP_after_goal_wait  	  = 50;  SP_feel_distance        = 3.0;  SP_num_lines            = 4;  SP_num_markers          = 55;  SP_unum_far_length      = 20.0;  SP_unum_too_far_length  = 40.0;  SP_team_far_length      = 40.0;  SP_team_too_far_length  = 60.0;  SP_version              = 4.06;  SP_team_size            = 11;  SP_half                 = 1;  sprintf(SP_host,        "localhost");  SP_goal_width           = 14.02;         SP_player_size          = 0.8;  SP_player_decay         = 0.4;  SP_player_rand 	  = 0.1;  SP_player_weight	  = 60.0;  SP_player_speed_max     = 32.0;  SP_stamina_max	  = 2000.0;  SP_stamina_inc          = 20.0;  SP_recover_dec_thr      = 0.3;	  SP_recover_dec          = 0.05; 	  SP_recover_min          = 0.1; 	  SP_effort_dec_thr       = 0.4;	  SP_effort_min           = 0.1;	  SP_effort_dec           = 0.05;	  SP_effort_inc_thr       = 0.9;	  SP_effort_inc           = 0.05;	  SP_ball_size            = 0.085;		  SP_ball_decay           = 0.96;	  SP_ball_rand            = 0.05;		  SP_ball_weight          = 0.2;;	  SP_ball_speed_max       = 32.0;	  SP_dash_power_rate      = 0.01;	  SP_kick_power_rate      = 0.016;  SP_kickable_margin      = 1.0;	  SP_kickable_area        = SP_kickable_margin + SP_ball_size + SP_player_size;  SP_catch_prob           = 1.0;	  SP_catch_area_l         = 2.0;	  SP_catch_area_w         = 1.0;	  SP_catch_ban_cycle      = 5;  SP_max_power            = 100;		  SP_min_power            = -30;		  SP_max_moment           = 180;		  SP_min_moment           = -180;		  SP_visible_angle        = 90.0;	  SP_audio_cut_dist       = 50.0;	  SP_dist_qstep           = 0.1;	  SP_land_qstep           = 0.01;	  SP_ckmargin             = 1.0;	  SP_wind_dir             = 0.0;	  SP_wind_force           = 0.0;  SP_wind_rand            = 0.0;	  SP_wind_none            = FALSE;  SP_wind_random          = FALSE;  SP_half_time            = 300;  SP_port                 = 6000;  SP_coach_port           = 6001;  SP_simulator_step       = 100;  SP_send_step            = 150;  SP_recv_step            = 10;  SP_say_msg_size         = 512;  SP_hear_max             = 2;  SP_hear_inc             = 1;  SP_hear_decay           = 2;  SP_coach_mode           = FALSE;  SP_coach_w_referee_mode = FALSE;  SP_use_offside          = FALSE;  SP_forbid_kickoff_offside = TRUE;  SP_verbose              = TRUE;  SP_offside_area         = 9.15;  SP_inertia_moment       = 5.0;  CP_goalie               = FALSE;  CP_save_log             = FALSE;  CP_save_freq            = 10;  CP_save_sound_log       = FALSE;  CP_save_sound_freq      = 10;  CP_senses_per_cycle     = 2;  CP_max_conf             = 1.0;  CP_min_valid_conf       = 0.5;  CP_conf_decay           = 0.98;  CP_player_conf_decay    = 0.99;  CP_ball_conf_decay      = 0.9;  CP_max_player_move_factor = 4;  CP_max_say_interval     = 100;  CP_ball_moving_threshold = .2; /* experimentally checked -- ball still, player fast => .15 ball speed */  CP_dodge_angle_buffer    = 25;  CP_dodge_distance_buffer = 3.5;  CP_dodge_power           = 30;  sprintf(CP_tree_stem,      "pass");  CP_DT_evaluate_interval  = 10;  CP_say_tired_interval    = 20;  CP_tired_buffer          = 10;  CP_set_plays             = FALSE;  CP_Setplay_Delay         = 5;  CP_Setplay_Max_Delay     = 100;  CP_Setplay_Time_Limit    = 150;  CP_kickable_buffer       = .1;  CP_mark_persist_time     = 100;  CP_track_min_distance    = 0;  CP_track_max_distance    = 15;  CP_pull_offsides         = FALSE;  CP_pull_offsides_when_winning = TRUE;  CP_spar                  = TRUE;  CP_mark                  = TRUE;  CP_take_stats            = FALSE;  /* pat added these */  CP_use_new_position_based_vel = TRUE;;  CP_opt_ctrl_dist        = 1.6;//(SP_player_size + .8 *SP_kickable_margin);  CP_KickTo_err           = 3;  CP_closest_margin       = .97;//(SP_player_size + 2.0*SP_ball_size);  CP_dokick_factor        = .22;  CP_max_turn_kick_pow    = 20;  CP_kick_time_space      = 1;  CP_max_ignore_vel       = .005;  CP_max_est_err          = .3;  CP_hard_kick_margin     = .97;//(SP_player_size + 2.0*SP_ball_size);  CP_hard_kick_err        = .1;   CP_hard_kick_factor     = .25;  CP_max_hard_kick_angle_err  = 5;  CP_max_go_to_point_angle_err = 5;  CP_max_int_lookahead    = 20;  CP_hardest_kick_angle_disp = 15;  CP_hard_kick_end_turn_dist = 1.1;//(SP_player_size + .3 *SP_kickable_margin);  CP_intercept_step       = 2;  CP_turnball_opp_worry_dist = 5;   CP_collision_buffer = .1;  CP_behind_angle  = 80;  CP_time_for_full_rotation = 24; /* average guestimate */  CP_ball_invalidation_dist_err = .3;  CP_dribble_ball_dist    = 1.2;  CP_dribble_ignore_opp_dist = 15;  CP_dribble_worry_opp_dist = 4;  CP_dribble_angle_norm = 60;  CP_dribble_dodge_max_dist = 6;  CP_dribble_dodge_angle_err = 15;  CP_dribble_exp_angle_buffer = 10;  CP_dribble_angle_ignore_buffer = 5;  CP_dribble_dodge_close_dist = 2;  CP_can_dribble_cone_ratio = .75;  CP_dribble_towards_length = 10;  CP_dribble_sideline_buffer = 1.5;  CP_dribble_sphere_rad = 3;  CP_move_imp_1v1_initial =  0.0;  CP_move_imp_1v1_inc =       .2;  CP_move_imp_1v1_threshold = 1.0 ;  CP_at_point_buffer = 1;  CP_overrun_dist = 3;  CP_def_block_dist = 2;  CP_def_block_dist_ratio = .5;  CP_overrun_buffer = 2.5;  CP_cycles_to_kick = 4;  CP_breakaway_buffer = 3;  CP_breakaway_kickable_buffer = 1.5;  CP_static_kick_dist = .985;  //CP_static_kick_ang = 47;  /* caculated value! */  CP_static_kick_ang = 42;  /* caculated value!- extar buffer */  CP_static_kick_ang_err = 15;//old: 5  CP_static_kick_dist_err = .3;//old: .14  CP_static_kick_overrun_dist = 4;  CP_goalie_baseline_buffer = 1;  CP_goalie_scan_angle_err = 10;  CP_goalie_at_point_buffer = .1;  CP_goalie_vis_angle_err = 5;  CP_goalie_max_shot_distance = 40;  CP_goalie_min_pos_dist = 15;  CP_goalie_max_pos_dist = SP_pitch_length * .75;  CP_goalie_max_forward_percent = .75;  CP_goalie_ball_ang_for_corner = 90;  CP_goalie_max_come_out_dist = 10;  CP_goalie_ball_dist_for_corner = SP_penalty_area_length;  CP_goalie_ball_dist_for_center = SP_pitch_length / 2;  CP_goalie_free_kick_dist = 3;  CP_goalie_go_to_ball_cone_ratio = .25;  CP_goalie_warn_space = 10;  CP_goalie_comes_out = TRUE;  CP_clear_ball_ang_step = 5.0;  CP_clear_ball_cone_ratio = .5;  CP_clear_ball_max_dist = 30;  CP_clear_offensive_min_horiz_dist = 20;  CP_clear_offensive_min_angle = 60;  CP_hardest_kick_shot_distance = 13;  CP_moderate_kick_shot_distance = 9;  CP_good_shot_distance = 20;  CP_shot_distance = 30;  CP_cycles_to_kick_buffer = 1;  CP_breakaway_shot_distance = 16;  sprintf(FP_initial_formation, "433");  sprintf(FP_formation_when_tied, "initial");  sprintf(FP_formation_when_losing, "initial");  sprintf(FP_formation_when_losing_lots, "initial");  sprintf(FP_formation_when_winning, "initial");  sprintf(FP_initial_hc_method, "Obey");  sprintf(FP_initial_mc_method, "Obey");  FP_initial_player_1_pos     = 1;  FP_initial_player_2_pos     = 2;  FP_initial_player_3_pos     = 3;  FP_initial_player_4_pos     = 4;  FP_initial_player_5_pos     = 5;  FP_initial_player_6_pos     = 6;  FP_initial_player_7_pos     = 7;  FP_initial_player_8_pos     = 8;  FP_initial_player_9_pos     = 9;  FP_initial_player_10_pos    = 10;  FP_initial_player_11_pos    = 11;  FP_goalie_number            = 0;}void OptionInfo::GetOptions(int argc, char **argv){  option_t opt[] = {    {"test_l",        		(void *)&VP_test_l,             V_BOOL},    {"test_r",        		(void *)&VP_test_r,             V_BOOL},    {"test",        		(void *)&VP_test,               V_BOOL},    {"train_DT",                    (void *)&VP_train_DT,           V_BOOL},    {"use_DT",                      (void *)&VP_use_DT,             V_BOOL},    {"my_score",        		(void *)&IP_my_score,           V_INT},    {"their_score",        		(void *)&IP_their_score,        V_INT},    {"reconnect",                   (void *)&IP_reconnect,          V_INT},    {"team_name",        		(void *)&MyTeamName,            V_STRING},    {"goalie",        		(void *)&CP_goalie,             V_BOOL},    {"save_log",        		(void *)&CP_save_log,           V_BOOL},    {"save_freq",                   (void *)&CP_save_freq,          V_INT},    {"save_sound_log",  		(void *)&CP_save_sound_log,     V_BOOL},    {"save_sound_freq",             (void *)&CP_save_sound_freq,    V_INT},    {"senses_per_cycle",            (void *)&CP_senses_per_cycle,   V_INT},    {"max_conf",                    (void *)&CP_max_conf,           V_FLOAT},    {"min_conf",                    (void *)&CP_min_valid_conf,     V_FLOAT},    {"conf_decay",                  (void *)&CP_conf_decay,         V_FLOAT},    {"player_conf_decay",           (void *)&CP_player_conf_decay,  V_FLOAT},    {"ball_conf_decay",             (void *)&CP_ball_conf_decay,    V_FLOAT},    {"max_player_move_factor",      (void *)&CP_max_player_move_factor, V_FLOAT},    {"max_say_interval",            (void *)&CP_max_say_interval,   V_INT},    {"ball_moving_threshold",       (void *)&CP_ball_moving_threshold, V_FLOAT},    {"dodge_distance_buffer",       (void *)&CP_dodge_distance_buffer, V_FLOAT},    {"dodge_angle_buffer",          (void *)&CP_dodge_angle_buffer, V_FLOAT},    {"dodge_power",                 (void *)&CP_dodge_power,        V_FLOAT},    {"tree_stem",                   (void *)&CP_tree_stem,          V_STRING},    {"DT_evaluate_interval",        (void *)&CP_DT_evaluate_interval, V_INT},    {"say_tired_interval",          (void *)&CP_say_tired_interval, V_INT},    {"tired_buffer",                (void *)&CP_tired_buffer,       V_FLOAT},    {"set_plays",                   (void *)&CP_set_plays,          V_BOOL},    {"set_play_delay",              (void *)&CP_Setplay_Delay,     V_INT},    {"set_play_time_limit",         (void *)&CP_Setplay_Time_Limit, V_INT},    {"kickable_buffer",             (void *)&CP_kickable_buffer,    V_FLOAT},    {"mark_persist_time",           (void *)&CP_mark_persist_time,  V_INT},    {"track_max_distance",          (void *)&CP_track_max_distance, V_FLOAT},    {"track_min_distance",          (void *)&CP_track_min_distance, V_FLOAT},    {"pull_offsides",               (void *)&CP_pull_offsides,      V_BOOL},    {"pull_offsides_when_winning",  (void *)&CP_pull_offsides_when_winning, V_ONOFF},    {"spar",                        (void *)&CP_spar,            V_ONOFF},    {"mark",                        (void *)&CP_mark,            V_ONOFF},    {"take_stats",                  (void *)&CP_take_stats,      V_BOOL},

⌨️ 快捷键说明

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