]> ruin.nu Git - icfp05.git/blobdiff - botsrc/bot.cpp
fixed bug in the graph-building
[icfp05.git] / botsrc / bot.cpp
index 10fb5447952d3e4bd58c21e80af169cb2fbf7e6e..a98a42bfb8fc5978a41c7ddcd14ad2b1cd6e0489 100644 (file)
@@ -47,10 +47,10 @@ void Bot::play(){
                getline(cin, input);
                if (input == "game-over")
                        return;
-               cerr << input << endl;
-               cerr << "Updating world" << endl;
+               //cerr << input << endl;
+               //cerr << "Updating world" << endl;
                updateWorld();
-               cerr << "Done updating world" << endl;
+               //cerr << "Done updating world" << endl;
                _type = _players[_name].type;
                _location = _players[_name].location;
                //cerr << "New turn" << endl;
@@ -155,22 +155,29 @@ void Bot::buildGraph(){
                if (type == "foot"){
                        _intersections[from].connections[to] = both;
                        Intersection& inter = _intersections[to];
-                       if (inter.connections.find(from) == inter.connections.end())
+                       hash_map<string,StreetType>::iterator conn = inter.connections.find(from);
+                       if (conn == inter.connections.end())
                                inter.connections[from] = foot;
-               }else
-                       _intersections[from].connections[to] = car;
+                       else if (conn->second == car)
+                               inter.connections[from] = both;
+               }else{
+                       Intersection& inter = _intersections[from];
+                       hash_map<string,StreetType>::iterator conn = inter.connections.find(to);
+                       if (conn == inter.connections.end())
+                               inter.connections[from] = car;
+                       else if (conn->second == foot)
+                               inter.connections[from] = both;
+               }
        }
        //cerr << "Number of streets: " << streets << endl;
        getline(cin, input);
 }
 
 void Bot::updateWorld(){
-       cerr << "Entered updateWorld function" << endl;
        string input;
        getline(cin,input);
-       cerr << input << endl;
        _world = value<int>(input);
-       cerr << "World: " << _world << endl;
+       //cerr << "World: " << _world << endl;
 
        getline(cin,input);
        _robbed = value<int>(input);
@@ -264,7 +271,7 @@ T value(std::string input){
 }
 
 std::string Bot::turn(){
-       cerr << "Using stupid stand still Bot::turn" << endl;
+       //cerr << "Using stupid stand still Bot::turn" << endl;
        return _location;
 }