#include #include #include #include #define kMaxFlowers 11 class ai_World { public: int temperature[kMaxFlowers]; int water[kMaxFlowers]; int sunlight[kMaxFlowers]; int nutrient[kMaxFlowers]; int beneficialInsect[kMaxFlowers]; int harmfulInsect[kMaxFlowers]; int currentTemperature; int currentWater; int currentSunlight; int currentNutrient; int currentBeneficialInsect; int currentHarmfulInsect; ai_World(); void ai_World::Encode(void); int ai_World::Fitness(int flower); void ai_World::Evolve(void); int ai_World::tb_Rnd(int start, int end); //~ai_World(); }; void ai_World::Encode(void) { int i; srand((unsigned) time(NULL)); for (i=1;i end) return 0; else { //srand(time(0)); return (rand() % (end + 1) + start); } } void ai_World::Evolve(void) { int fitTemperature[kMaxFlowers]; int fitWater[kMaxFlowers]; int fitSunlight[kMaxFlowers]; int fitNutrient[kMaxFlowers]; int fitBeneficialInsect[kMaxFlowers]; int fitHarmfulInsect[kMaxFlowers]; int fitness[kMaxFlowers]; int i; int leastFit=0; int leastFitIndex; srand((unsigned) time(NULL)); for (i=1;ileastFit) { leastFit=Fitness(i); leastFitIndex=i; } temperature[leastFitIndex]=temperature[rand() %10]; water[leastFitIndex]=water[rand() %10]; sunlight[leastFitIndex]=sunlight[rand() %10]; nutrient[leastFitIndex]=nutrient[rand() %10]; beneficialInsect[leastFitIndex]=beneficialInsect[rand() %10]; harmfulInsect[leastFitIndex]=harmfulInsect[rand() %10]; for (i=1;i