Display median and worst image of last generation

This commit is contained in:
Joscha 2017-04-28 20:37:16 +00:00
parent e7a51448c2
commit 6cfb8d93a2

View file

@ -129,8 +129,8 @@ int main()
Generation::fitness = &fitn; Generation::fitness = &fitn;
Generation::re = &randomEngine; Generation::re = &randomEngine;
Generation genr; Generation genr;
unsigned int gencnt = 0; unsigned int gencnt = 0; // all white is generation 0
// genr.updateFitness(); genr.updateFitness();
// for (auto it=genr.individuals.begin(); it!=genr.individuals.end(); ++it) { // for (auto it=genr.individuals.begin(); it!=genr.individuals.end(); ++it) {
// std::cout << "alive: " << it->alive << " fitnev: " << it->fitnessEvaluated << " fitn: " << it->fitness << std::endl; // std::cout << "alive: " << it->alive << " fitnev: " << it->fitnessEvaluated << " fitn: " << it->fitness << std::endl;
// } // }
@ -138,7 +138,11 @@ int main()
// displaying stuff // displaying stuff
sf::Sprite starget(target); sf::Sprite starget(target);
sf::View vbest(sf::FloatRect(0, 0, target.getSize().x, target.getSize().y)); sf::View vbest(sf::FloatRect(0, 0, target.getSize().x, target.getSize().y));
sf::View vmed(sf::FloatRect(0, 0, target.getSize().x, target.getSize().y));
sf::View vworst(sf::FloatRect(0, 0, target.getSize().x, target.getSize().y));
vbest.setViewport(sf::FloatRect(.5, 0, .5, .5)); vbest.setViewport(sf::FloatRect(.5, 0, .5, .5));
vmed.setViewport(sf::FloatRect(0, .5, .5, .5));
vworst.setViewport(sf::FloatRect(.5, .5, .5, .5));
sf::RenderWindow window(sf::VideoMode(winW, winH), "gross"); sf::RenderWindow window(sf::VideoMode(winW, winH), "gross");
window.setMouseCursorVisible(false); // hide the cursor window.setMouseCursorVisible(false); // hide the cursor
@ -148,9 +152,9 @@ int main()
while (window.pollEvent(event)); while (window.pollEvent(event));
// calculate next generation // calculate next generation
genr.updateFitness();
genr.cull(); genr.cull();
genr.reproduce(0); genr.reproduce(0);
genr.updateFitness();
// genr.updateFitness(); // genr.updateFitness();
// for (auto it=genr.individuals.rbegin(); it!=genr.individuals.rend(); ++it) { // for (auto it=genr.individuals.rbegin(); it!=genr.individuals.rend(); ++it) {
// if (it->fitnessEvaluated) { // if (it->fitnessEvaluated) {
@ -161,11 +165,12 @@ int main()
// display results // display results
window.clear(); window.clear();
window.draw(starget); window.draw(starget);
window.setView(vbest); window.setView(vbest ); window.draw(genr.individuals[0 ].chromosome);
window.draw(genr.individuals[0].chromosome); window.setView(vmed ); window.draw(genr.individuals[genr.living/2].chromosome);
window.setView(vworst); window.draw(genr.individuals[genr.living-1].chromosome);
window.setView(window.getDefaultView()); window.setView(window.getDefaultView());
window.display(); window.display();
std::cout << "Generation finished: " << gencnt++ << " (winner's length: " << genr.individuals[0].chromosome.length() << ")" << std::endl; std::cout << "Generation finished: " << ++gencnt << " (winner's length: " << genr.individuals[0].chromosome.length() << ")" << std::endl;
} }
} }