From b5b0644cf5ca8f5a35c023a1b87a3e28ff33fc51 Mon Sep 17 00:00:00 2001 From: tom Date: Mon, 2 May 2016 18:03:07 -0500 Subject: made list all iterators --- src/list.cpp | 63 +++++++++++++++++++++++++----------------------------------- 1 file changed, 26 insertions(+), 37 deletions(-) (limited to 'src') diff --git a/src/list.cpp b/src/list.cpp index e2724f3..ad9ab58 100644 --- a/src/list.cpp +++ b/src/list.cpp @@ -34,44 +34,33 @@ void List::Place() void List::Behavior() { - for(int i = 0; i N; - - for(int j = 0; j < R.size(); j++) - if(C[i].getBestSense()>Distance(C[i].getLocation(),R[j].getLocation())) - N.push_back(&R[j]); - - C[i].giveR(N); - N.clear(); - - vector M; - for(int j = 0; j < C.size(); j++) - { - if(j==i) - continue; - else if(C[i].getBestSense()>Distance(C[i].getLocation(),C[j].getLocation())) - M.push_back(&C[j]); - } + for(vector::iterator it = C.begin(); it!=C.end(); it++){ + it->Behavior(); - C[i].giveC(M); - M.clear(); + vector N; + for(vector ::iterator jt = R.begin(); jt!=R.end(); jt++){ + if( it->getBestSense() > Distance(it->getLocation(),jt->getLocation()) ) + N.push_back(&(*jt)); + } + it->giveR(N); + + vector M; + for(vector ::iterator jt = C.begin(); jt!=C.end(); jt++){ + if( jt == it) + continue; + else if( it->getBestSense() > Distance(it->getLocation(),jt->getLocation()) ) + M.push_back(&(*jt)); + } + it->giveC(M); + + M.clear(); + N.clear(); - // This kills the creature - if(C[i].getHealth()<=0) - { - Location z = C[i].getLocation(); - Resource r = Resource(main,"img/Cdead.png",z); - R.push_back(r); - C.erase(C.begin()+i); + if(it->getHealth()<=0){ + Location z = it->getLocation(); + Resource r = Resource(main,"img/Cdead.png",z); + R.push_back(r); + C.erase(it--); + } } - } -} - -double List::Distance(Location A, Location B) -{ - //computes distance between two points - return sqrt(pow(A.x - B.x, 2) + pow(A.y - B.y, 2)); } -- cgit v1.2.3