#include "list.hpp" List::List() { int i; Dna defaultDNA; //SDL_Rect rect = {0,0,defaultDNA.sizeMax/5,defaultDNA.sizeMax/5}; Location tmp; tmp.x = tmp.y = 0; for(i=0;i::iterator it = C.begin(); it!=C.end(); it++) if(it->getHealth()<=0){ Location tmp = it->getLocation(); Resource r = Resource(tmp); R.push_back(r); C.erase(it--); } for(std::list::iterator it = R.begin(); it!=R.end(); it++) if(it->getAmount()<=0) R.erase(it--); } void List::Behavior() { for(std::list::iterator it = C.begin(); it!=C.end(); it++){ std::list N = getNear(*it); it->giveN(N); it->Behavior(); if(it->getPregnancyReady()){ Dna D = it->getChildDNA(); Location tmp = it->getLocation(); Creature X(tmp,D); C.push_back(X); it->hadPregnancy(); } } for(std::list::iterator it = R.begin(); it!=R.end(); it++) it->grow(); } void List::Place() { tree.clear(); Location tmp; tmp.x = tmp.y = 0; while(R.size() < MINIMUM_RESOURCES){ Resource Y(tmp); R.push_back(Y); } for(std::list::iterator it = C.begin(); it!=C.end(); it++){ it->Place(); tree.insert(&(*it));; } for(std::list::iterator it = R.begin(); it!=R.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(); }