]> ruin.nu Git - icfp05.git/blobdiff - robber/robber.cpp
renamed dirs
[icfp05.git] / robber / robber.cpp
diff --git a/robber/robber.cpp b/robber/robber.cpp
deleted file mode 100644 (file)
index dbb287a..0000000
+++ /dev/null
@@ -1,110 +0,0 @@
-#include "robber.h"
-#include <iostream>
-#include <iterator>
-#include <queue>
-#include <cmath>
-
-using namespace std;
-using namespace __gnu_cxx;
-
-string Robber::turn(){
-       hash_map<string,double> streets;
-       Intersection& inter = _intersections[_location];
-       for (hash_map<string,StreetType>::const_iterator street = inter.connections.begin();
-               street != inter.connections.end(); ++street){
-               if (street->second == car){
-                       cerr << "Discarding: " << street->first << " since car is needed" << endl;
-                       continue;
-               }
-               double goodness = 0;
-               Intersection& conInter = _intersections[street->first];
-
-               list<string> closestFootCop = shortestPath(street->first, cop_foot, FindPlayer(_players, cop_foot, 6), true);
-               list<string> closestCarCop = shortestPath(street->first, cop_car, FindPlayer(_players, cop_car, 5), true);
-
-               unsigned int closestCop = 0;
-               bool copInCar = false;
-
-               if (closestCarCop.size() < closestFootCop.size() && closestCarCop.size() > 0){
-                       closestCop = closestCarCop.size();
-                       copInCar = true;
-               }else 
-                       closestCop = closestFootCop.size();
-
-               if (closestCop > 0 && closestCop < 3){
-                       cerr << "Cop " << closestCop << " intersections away." << endl;
-                       continue;
-               }
-
-               priority_queue<double> banks;
-               for(hash_map<string,int>::const_iterator bank = _banks.begin();
-                               bank != _banks.end(); ++bank){
-                       //cerr << "Handling bank at: " << bank->first << endl;
-                       if (bank->second > 0){
-                               list<string> l = shortestPath(street->first, _type, SimpleSPGoal(bank->first));
-                               if (l.size() < 1)
-                                       continue;
-                               //list<string>::iterator i = l.begin();
-                               //++i;
-                               banks.push(bank->second/(pow(l.size(),4.0)));
-                       }
-               }
-               //sort(banks.begin(),banks.end(),greater<double>());
-
-               for (unsigned int i = 0; i < 2 && banks.size() > 0;++i){
-                       goodness += banks.top();
-                       banks.pop();
-               }
-
-               cerr << "Goodness before cop: " << goodness << endl;
-               if (closestCop > 2){
-                       cerr << "Cop " << closestCop << " intersections away." << endl;
-                       goodness *= 1 - 1/(copInCar ? closestCop : closestCop - 1);
-               }
-               cerr << "Goodness after cop: " << goodness << endl;
-
-               if (conInter.type == bank){
-                       cerr << "FOUND A BANK" << endl;
-                       if (closestCop > 0 && closestCop < 4)
-                               continue;
-                       else if (_banks[street->first] > 0){
-                               cerr << "No cop close to bank" << endl;
-                               return street->first;
-                       }
-               }
-               
-               cerr << "Street: " << street->first << " goodness: " << goodness << endl;
-               streets[street->first] = goodness;
-       }
-       streets[_oldLocation] /= 10;
-
-
-
-       /*cerr << "Using route: ";
-       copy(v.begin(), v.end(), ostream_iterator<string>(cerr, " : "));
-       cerr << endl;
-       */
-
-       string destination = _location;
-       double goodness = 0;
-       for (hash_map<string,double>::const_iterator dest = streets.begin();
-                       dest != streets.end(); ++dest){
-               cerr << "Goodness: " << dest->second << endl;
-               if (dest->second > goodness){
-               cerr << "New Goodness: " << dest->second << endl;
-                       goodness = dest->second;
-                       destination = dest->first;
-               }
-       }
-       _oldLocation = _location;
-               
-       return destination;
-       
-}
-
-int main(){
-       Robber robber("robber");
-       robber.play();
-
-       return 0;
-}