Example #1
0
double Gene::get_fitness(){
  len = time = 0.0;
  for(int i=0;i<REP_S;i++){
    Snake s;
    Snake::mov_v v;
    do{
      if(t_stack.empty()){
	v = get_move(&s,t_tr);
      }else{
	v = get_move(&s,t_stack.top());
	t_stack.pop();
      }
      //s.print_b();
    }while(s.move(v));
    len += (double)s.get_len();
    time += (double)s.get_time();
  }
  len /= (double)REP_S;
  time /= (double)REP_S;
  return pow(W_POW,time/(len-START_LEN+1.0)*W_TIME + len*W_LEN) + CON;
}