#include "list.hpp" List::List() { int i; DNA d; Rectangle tmp; for(i=0;i::iterator it = creatures.begin(); it!= creatures.end(); it++) if(it->getHealth()<=0){ Resource Y(it->getRectangle()); resources.push_back(Y); 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; 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 = tree.retrieve(N, nC.getGFXD()); return N; } std::vector List::drawQuadTree(){ return tree.Draw(); }