Esempio n. 1
0
void NeoWindow::RedrawChartWindow() {
   if ( chart_wind == NULL ) return;
   fl_freeze_form( chart_wind->chart_window );
   int c = FL_BLACK + 1;
   fl_set_chart_maxnumb( chart_wind->population, 127 );
   if ( neo->time_step % 500 < 50 ) {
      char tmp[5]; sprintf( tmp, "%d", neo->num_creatures );
      fl_add_chart_value( chart_wind->population, neo->num_creatures, tmp, c );
   } else {
      fl_add_chart_value( chart_wind->population, neo->num_creatures, "", c );
   }
   int values[32];
   for ( int i = 1; i < 11; i ++ ) {
      for ( int j = 0; j < 32; j ++ ) values[j] = 0;
      for ( long k = 0; k < neo->max_index+1; k ++ ) {
	 if ( neo->ppCreatureList[k] != NULL ) {
	    Creature *c = neo->ppCreatureList[k];
	    Genome *g = c->genome;
	    switch ( i ) {
	    case 1: values[ *(g->maximum_mass) >> 3 ] ++; break;
	    case 2: values[ *(g->plant_eff) >> 3 ] ++; break;
	    case 3: values[ *(g->attack_defend) >> 3 ] ++; break;
	    case 4: values[ *(g->color1) >> 3 ] ++; break;
	    case 5: values[ *(g->color2) >> 3 ] ++; break;
	    case 6: values[ *(g->min_age_reproduce) >> 3 ] ++; break;
	    case 7: values[ *(g->min_energy_reproduce) >> 3 ] ++; break;
	    case 8: values[ c->energy >> 6 ] ++; break;
	    case 9: values[ c->a_ucMass >> 3 ] ++; break;
	    case 10: values[ *(g->metabolism) >> 3 ] ++; break;
	    }
	 }
      }
      FL_OBJECT *chart = NULL;
      switch ( i ) {
      case 1: chart = chart_wind->max_mass; break;
      case 2: chart = chart_wind->plant_eff; break;
      case 3: chart = chart_wind->attack; break;
      case 4: chart = chart_wind->color1; break;
      case 5: chart = chart_wind->color2; break;
      case 6: chart = chart_wind->breeding_age; break;
      case 7: chart = chart_wind->breeding_energy; break;
      case 8: chart = chart_wind->energy; break;
      case 9: chart = chart_wind->mass; break;
      case 10: chart = chart_wind->metabolism; break;
      }
      fl_clear_chart( chart );
      for ( int j = 0; j < 32; j ++ ) fl_add_chart_value( chart, values[j], "", c );
   }
Esempio n. 2
0
void
fill_in( FL_OBJECT * ob )
{
   int c = FL_BLACK;

   fl_add_chart_value( ob, 15.0, "item 1", ++c );
   fl_add_chart_value( ob,  5.0, "item 2", ++c );
   fl_add_chart_value( ob,  0.0, "item 3", ++c );
   fl_add_chart_value( ob, -10., "item 4", ++c );
   fl_add_chart_value( ob, 25.0, "item 5", ++c );
   fl_add_chart_value( ob, 12.0, "item 6", ++c );
}