#include "list.hpp" List::List() { int i; DNA defaultDNA; Rectangle tmp; tmp.x = tmp.y = 0; for(i=0;i::iterator it = creatures.begin(); it!= creatures.end(); it++) if(it->getHealth()<=0){ Rectangle tmp = it->getRectangle(); Resource r = Resource(tmp); resources.push_back(r); creatures.erase(it--); } for(std::list::iterator it = resources.begin(); it!= resources.end(); it++) if(it->getAmount()<=0) resources.erase(it--); } void List::Behavior() { for(std::list::iterator it = creatures.begin(); it!= creatures.end(); it++){ std::list N = getNear(*it); it->giveNearMe(N); it->Behavior(); if(it->getPregnancyReady()){ DNA D = it->getChildsDNA(); Rectangle tmp = it->getRectangle(); Creature X(tmp,D); creatures.push_back(X); it->hadPregnancy(); } } for(std::list::iterator it = resources.begin(); it!= resources.end(); it++) it->grow(); } void List::Place() { tree.clear(); Rectangle tmp; tmp.x = tmp.y = 0; while(resources.size() < MINIMUM_RESOURCES){ Resource Y(tmp); resources.push_back(Y); } for(std::list::iterator it = creatures.begin(); it!= creatures.end(); it++){ it->Place(); tree.insert(&(*it));; } for(std::list::iterator it = resources.begin(); it!=resources.end(); it++){ it->Place(); tree.insert(&(*it));; } } std::list List::getNear(Creature nC) { std::list N; N.clear(); N = tree.retrieve(N, nC.getGFXD()); //std::vector x{std::begin(N),std::begin(N)}; return N; } std::vector List::drawQuadTree(){ return tree.Draw(); }