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

📄 utils.cpp

📁 robocup源代码2001年清华机器人源代码
💻 CPP
📖 第 1 页 / 共 2 页
字号:
    {"effort_inc",   		(void *)&SP_effort_inc,	        V_FLOAT},
    {"ball_size",   		(void *)&SP_ball_size,		V_FLOAT},
    {"ball_decay",   		(void *)&SP_ball_decay, 	V_FLOAT},
    {"ball_rand",   		(void *)&SP_ball_rand,		V_FLOAT},
    {"ball_weight",   		(void *)&SP_ball_weight,	V_FLOAT},
    {"ball_speed_max",      (void *)&SP_ball_speed_max,	V_FLOAT},
	{"baccel_max",			(void *)&SP_baccel_max,		V_FLOAT},
    {"dash_power_rate",     (void *)&SP_dash_power_rate,	V_FLOAT},
    {"kick_power_rate",     (void *)&SP_kick_power_rate,	V_FLOAT},
    {"kickable_margin",     (void *)&SP_kickable_margin,	V_FLOAT},
    {"catch_probability", 	(void *)&SP_catch_prob, 	V_FLOAT},
    {"catchable_area_l",    (void *)&SP_catch_area_l,	V_FLOAT},
    {"catchable_area_w",    (void *)&SP_catch_area_w,	V_FLOAT},
    {"maxpower",   		    (void *)&SP_max_power,		V_FLOAT},
    {"minpower",   		    (void *)&SP_min_power,		V_FLOAT},
    {"maxmoment",   		(void *)&SP_max_moment,		V_FLOAT},
    {"minmoment",   		(void *)&SP_min_moment,		V_FLOAT},
    {"maxneckang",			(void *)&SP_max_neck_angle,	V_FLOAT},
    {"minneckang",			(void *)&SP_min_neck_angle,	V_FLOAT},
    {"maxneckmoment",		(void *)&SP_max_neck_moment,V_FLOAT},
    {"minneckmoment",		(void *)&SP_min_neck_moment,V_FLOAT},
    {"visible_angle",   	(void *)&SP_visible_angle,	V_FLOAT},
    {"audio_cut_dist",   	(void *)&SP_audio_cut_dist,	V_FLOAT},
    {"quantize_step",   	(void *)&SP_dist_qstep, 	V_FLOAT},
    {"quantize_step_l",   	(void *)&SP_land_qstep, 	V_FLOAT},
    {"ckick_margin",   	    (void *)&SP_ckmargin,   	V_FLOAT},
    {"wind_dir",   		    (void *)&SP_wind_dir,   	V_FLOAT},
    {"wind_force",   		(void *)&SP_wind_force,  	V_FLOAT},
    {"wind_rand",   		(void *)&SP_wind_rand,  	V_FLOAT},
    {"wind_none",   		(void *)&SP_wind_none,  	V_ONOFF},
    {"wind_random",   		(void *)&SP_wind_random,	V_ONOFF},
    {"half_time",   		(void *)&SP_half_time,  	V_INT},
    {"port",   				(void *)&SP_port,       	V_INT},
    {"coach_port",   		(void *)&SP_coach_port,  	V_INT},
    {"olcoach_port",	    (void *)&SP_olcoach_port,	V_INT},
    {"simulator_step",   	(void *)&SP_simulator_step,	V_INT},
    {"send_step",   		(void *)&SP_send_step,  	V_INT},
    {"recv_step",   		(void *)&SP_recv_step,  	V_INT},
    {"say_msg_size",        (void *)&SP_say_msg_size,	V_INT},
    {"hear_max",   		    (void *)&SP_hear_max,   	V_INT},
    {"hear_inc",	        (void *)&SP_hear_inc,   	V_INT},
    {"hear_decay",   		(void *)&SP_hear_decay,  	V_INT},
    {"catch_ban_cycle",     (void *)&SP_catch_ban_cycle,V_INT},
    {"coach",   			(void *)&SP_coach_mode,  	V_ONOFF},
    {"coach_w_referee",     (void *)&SP_coach_w_referee_mode,V_ONOFF},
    {"say_coach_cnt_max",   (void *)&SP_say_coach_cnt_max,	V_INT},
    {"say_coach_msg_size",	(void *)&SP_say_coach_msg_size,	V_INT},
    {"send_vi_step",		(void *)&SP_send_vi_step,		V_INT},
    {"look_step",			(void *)&SP_look_step,			V_INT},
    {"use_offside",   		(void *)&SP_use_offside,		V_ONOFF},
    {"forbid_kick_off_offside",(void *)&SP_forbid_kickoff_offside, V_ONOFF},
	{"record_log",	        (void *)&SP_rec_log,	V_ONOFF},
	{"record_version",      (void *)&SP_rec_ver,	V_INT},
    {"send_log",	        (void *)&SP_send_log,		V_ONOFF},
    {"verbose",             (void *)&SP_verbose,		V_ONOFF},
    {"offside_active_area_size",    (void *)&SP_offside_area,	V_FLOAT},
    {"inertia_moment",    	(void *)&SP_inertia_moment,     V_FLOAT},
    {"sense_body_step",    	(void *)&SP_sense_body_step,    V_INT},
    {"offside_kick_margin", (void *)&SP_offside_kick_margin,V_FLOAT},
    {"record_messages",         (void *)&SP_record_messages,V_ONOFF},
	{"clang_win_size",		(void *)&SP_clang_win_size,		V_INT},
	{"clang_define_win",	(void *)&SP_clang_define_win,	V_INT},
	{"clang_meta_win",		(void *)&SP_clang_meta_win,		V_INT},
	{"clang_advice_win",	(void *)&SP_clang_advice_win,	V_INT},
	{"clang_info_win",		(void *)&SP_clang_info_win,		V_INT},
	{"clang_mess_delay",	(void *)&SP_clang_mess_delay,	V_INT},
	{"clang_mess_per_cycle",(void *)&SP_clang_mess_per_cycle,V_INT},
	{"player_types",		(void *)&SP_player_types,	V_INT},
	{"subs_max",			(void *)&SP_subs_max,		V_INT},
	{"player_speed_max_delta_min",	(void *)&SP_player_speed_max_delta_min,	V_FLOAT},
	{"player_speed_max_delta_max",	(void *)&SP_player_speed_max_delta_max,	V_FLOAT},
	{"stamina_inc_max_delta_factor",(void *)&SP_stamina_inc_max_delta_factor,V_FLOAT},
	{"player_decay_delta_min",		(void *)&SP_player_decay_delta_min,	V_FLOAT},
	{"player_decay_delta_max",		(void *)&SP_player_decay_delta_max, V_FLOAT},
	{"inertia_moment_delta_factor",	(void *)&SP_inertia_moment_delta_factor,	V_FLOAT},
	{"dash_power_rate_delta_min",	(void *)&SP_dash_power_rate_delta_min,	V_FLOAT},
	{"dash_power_rate_delta_max",	(void *)&SP_dash_power_rate_delta_max,	V_FLOAT},
	{"player_size_delta_factor",	(void *)&SP_player_size_delta_factor,	V_FLOAT},
	{"kickable_margin_delta_min",	(void *)&SP_kickable_margin_delta_min,	V_FLOAT},
	{"kickable_margin_delta_max",	(void *)&SP_kickable_margin_delta_max,	V_FLOAT},
	{"kick_rand_delta_factor",		(void *)&SP_kick_rand_delta_factor,		V_FLOAT},
	{"extra_stamina_delta_min",		(void *)&SP_extra_stamina_delta_min,	V_FLOAT},
	{"extra_stamina_delta_max",		(void *)&SP_extra_stamina_delta_max,	V_FLOAT},
	{"effort_max_delta_factor",		(void *)&SP_effort_max_delta_factor,	V_FLOAT},
	{"effort_min_delta_factor",		(void *)&SP_effort_min_delta_factor,		V_FLOAT},
	{"drop_ball_time",		(void *)&SP_drop_ball_time,		V_INT},
	{"goalie_max_moves",	(void *)&SP_goalie_max_moves,	V_INT},
 
    {"log_file",		    (void *)&CP_logfile,		V_STRING},
    {"rec_file",			(void *)&CP_recfile,		V_STRING},
	{"it_weight_file",		(void *)&CP_IT_weightfile,	V_STRING},
	{"it_ref_weight_file",		(void *)&CP_IT_ref_weigthfile,	V_STRING},
	{"it_time_weight_file",		(void *)&CP_IT_time_weightfile,	V_STRING},
	{"fm_offense_weight_file",		(void *)&CP_FM_offense_weightfile,	V_STRING},
	{"fm_defense_weight_file",		(void *)&CP_FM_defense_weightfile,	V_STRING},
	{"pass_weight_file",	(void *)&CP_PASS_weightfile,	V_STRING},
	{"shoot_weight_file",	(void *)&CP_SHOOT_weightfile,	V_STRING},
	{"cb_weight_file",		(void*)&CP_CB_weightfile,		V_STRING},

	{"offsen_weight_file",	(void *)&CP_Off_sen_weightfile,	V_STRING},	
	{"df_sensitivity_weight_file",	(void *)&CP_DF_Sensitivity_weightfile,	V_STRING}, 
	{"mark_weight_file",	(void *)&CP_Mark_priority_weightfile, V_STRING}, 
	{"block_weight_file",	(void *)&CP_Block_priority_weightfile, V_STRING}, 
	
	{"kick_oa_weightfile_a",	(void *)&CP_KickOA_weightfile_A, V_STRING},
	{"kick_oa_weightfile_b",	(void *)&CP_KickOA_weightfile_B, V_STRING},
	{"kick_oa_weightfile_c",	(void *)&CP_KickOA_weightfile_C, V_STRING},
	{"kick_oa_weightfile_d",	(void *)&CP_KickOA_weightfile_D, V_STRING},	
	{"deviation_weight_file",   (void *)&CP_deviation_weightfile,V_STRING}, 
	{"df_formation_priority_file", (void *)&CP_DF_formation_priority_file,V_STRING}, 
	{"df_press_priority_file",  (void *)&CP_DF_press_priority_file,V_STRING},       
    
	{"my_score",        		(void *)&IP_MyScore,           V_INT},
    {"their_score",        		(void *)&IP_TheirScore,        V_INT},
    {"reconnect",                   (void *)&IP_reconnect,          V_INT},

    {"team_name",        		(void *)&CP_TeamName,            V_STRING},
	{"opp_team_name",           (void *)&CP_Opp_TeamName,        V_STRING},
    {"goalie",        		(void *)&CP_goalie,             V_ONOFF},
	{"UNum",                (void *)&CP_Number,             V_INT},
	
	{"matrix",             (void *)&CP_matrixfile,      V_STRING},
	{"hostip",               (void *)&SP_host[0],           V_STRING},
    {"player_1_attackness",                (void *)&FP_attackness[0],  V_FLOAT},
	{"player_1_leftness",                (void *)&FP_leftness[0],  V_FLOAT},
	{"player_1_aggressiveness",                (void *)&FP_aggressiveness[0],  V_FLOAT},
	{"player_1_creativeness",                (void *)&FP_creativeness[0],  V_FLOAT},
    {"player_2_attackness",                (void *)&FP_attackness[1],  V_FLOAT},
	{"player_2_leftness",                (void *)&FP_leftness[1],  V_FLOAT},
	{"player_2_aggressiveness",                (void *)&FP_aggressiveness[1],  V_FLOAT},
	{"player_2_creativeness",                (void *)&FP_creativeness[1],  V_FLOAT},
    {"player_3_attackness",                (void *)&FP_attackness[2],  V_FLOAT},
	{"player_3_leftness",                (void *)&FP_leftness[2],  V_FLOAT},
	{"player_3_aggressiveness",                (void *)&FP_aggressiveness[2],  V_FLOAT},
	{"player_3_creativeness",                (void *)&FP_creativeness[2],  V_FLOAT},
    {"player_4_attackness",                (void *)&FP_attackness[3],  V_FLOAT},
	{"player_4_leftness",                (void *)&FP_leftness[3],  V_FLOAT},
	{"player_4_aggressiveness",                (void *)&FP_aggressiveness[3],  V_FLOAT},
	{"player_4_creativeness",                (void *)&FP_creativeness[3],  V_FLOAT},
    {"player_5_attackness",                (void *)&FP_attackness[4],  V_FLOAT},
	{"player_5_leftness",                (void *)&FP_leftness[4],  V_FLOAT},
	{"player_5_aggressiveness",                (void *)&FP_aggressiveness[4],  V_FLOAT},
	{"player_5_creativeness",                (void *)&FP_creativeness[4],  V_FLOAT},
    {"player_6_attackness",                (void *)&FP_attackness[5],  V_FLOAT},
	{"player_6_leftness",                (void *)&FP_leftness[5],  V_FLOAT},
	{"player_6_aggressiveness",                (void *)&FP_aggressiveness[5],  V_FLOAT},
	{"player_6_creativeness",                (void *)&FP_creativeness[5], V_FLOAT},
    {"player_7_attackness",                (void *)&FP_attackness[6],  V_FLOAT},
	{"player_7_leftness",                (void *)&FP_leftness[6],  V_FLOAT},
	{"player_7_aggressiveness",                (void *)&FP_aggressiveness[6],  V_FLOAT},
	{"player_7_creativeness",                (void *)&FP_creativeness[6],  V_FLOAT},
    {"player_8_attackness",                (void *)&FP_attackness[7],  V_FLOAT},
	{"player_8_leftness",                (void *)&FP_leftness[7],  V_FLOAT},
	{"player_8_aggressiveness",                (void *)&FP_aggressiveness[7],  V_FLOAT},
	{"player_8_creativeness",                (void *)&FP_creativeness[7],  V_FLOAT},
    {"player_9_attackness",                (void *)&FP_attackness[8],  V_FLOAT},
	{"player_9_leftness",                (void *)&FP_leftness[8],  V_FLOAT},
	{"player_9_aggressiveness",                (void *)&FP_aggressiveness[8],  V_FLOAT},
	{"player_9_creativeness",                (void *)&FP_creativeness[8],  V_FLOAT},
    {"player_10_attackness",               (void *)&FP_attackness[9], V_FLOAT},
	{"player_10_leftness",               (void *)&FP_leftness[9], V_FLOAT},
	{"player_10_aggressiveness",                (void *)&FP_aggressiveness[9],  V_FLOAT},
	{"player_10_creativeness",                (void *)&FP_creativeness[9],  V_FLOAT},
    {"player_11_attackness",               (void *)&FP_attackness[10], V_FLOAT},
	{"player_11_leftness",               (void *)&FP_leftness[10], V_FLOAT},
	{"player_11_aggressiveness",                (void *)&FP_aggressiveness[10],  V_FLOAT},
	{"player_11_creativeness",                (void *)&FP_creativeness[10],  V_FLOAT},
    {"goalie_number",               (void *)&FP_goalie_number        , V_INT},
	{"shoot_avoidgoalie",           (void *)&CP_shoot_avoidgoalie    , V_FLOAT},
	{"encryption_matrix",           (void *)&CP_encryption_matrix    ,  V_INT},
	{"encryption_key",              (void *)&CP_encryption_key        , V_INT},    
    {"\0",				NULL, 			       	V_NONE}
  } ;

  /* skip command name */
  argv++ ; argc-- ;

  /* first, search option '-file' */
  int i ;
  FILE *fp ;
  for(i = 0 ; i < argc ; i++) {
    if (!strcmp(*(argv + i),"-file")) {
      if ((fp = fopen(*(argv+i+1),"r")) == NULL) {
		  my_error("cant't open configure file");
		  break ;    
	  }
      char buf[100] ;
	  while(fgets(buf,100,fp) != NULL) {
				/* ignore remark line */
		  if (buf[0] == '#' || buf[0] == '\n')continue ;

				/* replace from ':' to ' ' */
		  char *t = buf ;
		  while(*t != NULLCHAR) {
			  if (*t == ':') *t = ' ' ;
			  t++ ;
		  }

		  int n, p ;
		  char com[256] ;
		  char onoff[16] ;
		  n = sscanf(buf,"%s", com);
		  if (n < 1) {
			  my_error("Illegal line : %s",buf);
			  continue ;
		  }

		  for (p = 0 ; opt[p].vptr != NULL ; p++) {
			  if (strcmp(com, opt[p].optname))
				  continue ;
			  /* match */
			  switch(opt[p].vsize) {
			  case V_INT:
				  n = sscanf(buf, "%s %d", com, (int *)opt[p].vptr) ;
				  break ;

			  case V_STRING:
				  n = sscanf(buf, "%s %s", com, (char *)opt[p].vptr) ;
				  break ;

			  case V_FLOAT:
				  n = sscanf(buf, "%s %f", com, (float *)opt[p].vptr) ;
				  break ;

			  case V_BOOL:
				  n = 2 ;
				  *((bool *)opt[p].vptr) = true ;
				  break ;

			  case V_ONOFF:
				  n = sscanf(buf, "%s %s", com, onoff) ;
				  if (n == 1) {
					  n = 2;
					  *((bool *)opt[p].vptr) = true;
				  } else
					  *((bool *)opt[p].vptr) = (!strcmp(onoff, "on")) ? true :false;
				  break ;
			  }

			  if (n < 2)
				  cerr << "Illegal line (" << com << ") " << endl ;
			  break ;
		  }

		  if (opt[p].vptr == NULL)
			  cerr << "Illegal line (" << com << ") " << endl ;
	  }

	  fclose(fp) ;
      /* break ; */   // Without this, more than one file can be read
    }
  }

  /* next, analyze command line option */
  int p ;

  while (argc) {
    if (!strcmp(*argv, "-file")) {
      argv += 2 ;
      argc -= 2 ;
      continue ;
    }
			
	for (p = 0 ; opt[p].vptr != NULL ; p++) {
      if (strcmp(*argv + 1, opt[p].optname))
	continue ;

      /* match */
      argv++ ;
      argc-- ;

	  switch(opt[p].vsize) {
      case V_INT:
		  *((int *)opt[p].vptr) = atoi(*argv) ;
		  break ;
	  case V_STRING:
		  strcpy((char *)opt[p].vptr, *argv) ;
		  break ;

      case V_FLOAT:
		  *((float *)opt[p].vptr) = float(atof(*argv)) ;
		  break ;

      case V_BOOL:
		  *((bool *)opt[p].vptr) = true ;
		  argv-- ;
		  argc++ ;
		  break ;

	  case V_ONOFF:
		  if (argc > 0 && (*argv)[0] != '-') {	  
			  *((bool *)opt[p].vptr) = (!strcmp(*argv, "on")) ? true : false ;
		  } else {
	  /* if there's nothing specified, then we set it to true */
			  *((bool *)opt[p].vptr) = true;
			  argv-- ;
			  argc++ ;
		  }
		  break ;
	  }
	  break ;
    }

	if (opt[p].vptr == NULL)
		cerr << "Unrecognized Option : " << *argv << endl ;

	argv++ ;
	argc-- ;
  }

/*****************************************************************/
  SP_half_time = SP_half_time * 1000 / SP_simulator_step ;
  SP_kickable_area = SP_kickable_margin + SP_ball_size + SP_player_size ;

  if ( !CP_goalie )
	  CP_goalie = bool(CP_Number == FP_goalie_number);

  if (IP_reconnect)
	  CP_Number = IP_reconnect;

  char n[10];
  sprintf(n,"%d",CP_Number);	
  strcat(CP_logfile,n); // logfile name
  strcat(CP_recfile,n); // recfile name
  for(i = 0; i < CP_matrix_max; i++){
	  sprintf(CP_m_file[i],"%s%d_%d", CP_matrixfile, CP_Number, i+1);
  }

  CP_attackness = FP_attackness[Idx(CP_Number)];
  CP_leftness = FP_leftness[Idx(CP_Number)];
  CP_aggressiveness = FP_aggressiveness[Idx(CP_Number)];
  CP_creativeness = FP_creativeness[Idx(CP_Number)];

  CP_division = 360.0f / CP_num_divisions;

  sprintf(CP_appname, "%s-No.%d", CP_TeamName, CP_Number);

  SP_ball_decay_ln = (float)log(SP_ball_decay);
  CP_turnball_radius_threshold = SP_ball_size + SP_player_size + CP_collision_buffer;
  SP_semi_pitch_length = SP_pitch_length / 2;
  SP_semi_pitch_width  = SP_pitch_width / 2;
  SP_midfieldline = SP_semi_pitch_length * 0.48f;
  SP_backfieldline = -SP_semi_pitch_length * 0.285f;
  SP_left_wing = - SP_semi_pitch_width * 0.353f; 
  SP_right_wing = -SP_left_wing;
  CP_control_margin = SP_kickable_area + 0.15f;
  SP_pitch_diameter = (float)sqrt(Sqr(SP_pitch_width) + Sqr(SP_pitch_length)); 
  CP_safecatch_width = (float)sqrt(Sqr(SP_catch_area_l) - Sqr(SP_ball_speed_max /2));
}

⌨️ 快捷键说明

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