From 14c36420a37678b75b30f3b4d1dec7eddb053eef Mon Sep 17 00:00:00 2001 From: Tom Barrett Date: Sun, 26 Mar 2017 06:46:12 -0500 Subject: -all organisms now in one list -plants do not reproduce yet, this is needed --- src/list.cpp | 66 +++++++++++++++++++++++------------------------------------- 1 file changed, 25 insertions(+), 41 deletions(-) (limited to 'src/list.cpp') diff --git a/src/list.cpp b/src/list.cpp index 5904079..d93b38e 100644 --- a/src/list.cpp +++ b/src/list.cpp @@ -7,19 +7,19 @@ List::List() Rectangle tmp; for(i=0;i::iterator it = creatures.begin(); it!= creatures.end(); it++) + for(std::list::iterator it = organisms.begin(); it!= organisms.end(); it++) if(it->getHealth()<=0){ - DNA d = DNA(CORPSE_TYPE); - Organism X(it->getRectangle(), d); - resources.push_back(X); - creatures.erase(it--); + if(it->getType() == PLANT_TYPE or it->getType() == CORPSE_TYPE) + organisms.erase(it--); + else{ + DNA d = DNA(CORPSE_TYPE); + Organism X(it->getRectangle(), d); + organisms.push_back(X); + organisms.erase(it--); + } } - - for(std::list::iterator it = resources.begin(); it!= resources.end(); it++) - if(it->getHealth()<=0) - resources.erase(it--); } void List::Behavior() { - for(std::list::iterator it = creatures.begin(); it!= creatures.end(); it++){ - std::vector near = getNear(*it); - it->giveNearMe(near); - it->Behavior(); + for(std::list::iterator it = organisms.begin(); it!= organisms.end(); it++){ + if(it->getType() == PLANT_TYPE or it->getType() == CORPSE_TYPE) + it->grow(); + else{ + std::vector near = getNear(*it); + it->giveNearMe(near); + it->Behavior(); - if(it->getPregnancyReady()){ - Organism X(it->getRectangle(),it->getChildsDNA()); - creatures.push_back(X); - it->hadPregnancy(); + if(it->getPregnancyReady()){ + Organism X(it->getRectangle(),it->getChildsDNA()); + organisms.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; - DNA d = DNA(PLANT_TYPE); - while(resources.size() < MINIMUM_PLANTS){ - Organism X(tmp, d); - resources.push_back(X); - } - - for(std::list::iterator it = creatures.begin(); it!= creatures.end(); it++) + for(std::list::iterator it = organisms.begin(); it!= organisms.end(); it++) tree.insert(&(*it));; - - for(std::list::iterator it = resources.begin(); it!=resources.end(); it++) - tree.insert(&(*it));; - } std::vector List::getNear(Organism c) @@ -89,9 +79,3 @@ std::vector List::getNear(Organism c) return near; } - -std::vector List::drawQuadTree() -{ - return tree.Draw(); -} - -- cgit v1.2.3