From 4af4c1cd4472ec85a7fd520cb2ee4302ee920703 Mon Sep 17 00:00:00 2001 From: Michael Andreen Date: Sun, 26 Jun 2005 10:50:16 +0000 Subject: [PATCH] tuned robber a bit --- robber/robber.cpp | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/robber/robber.cpp b/robber/robber.cpp index d8154c0..87ef645 100644 --- a/robber/robber.cpp +++ b/robber/robber.cpp @@ -11,7 +11,7 @@ struct FindCop : SPGoal{ const hash_map& _players; FindCop(const hash_map& players, int limit = 0) : _players(players), _limit(limit){} int operator()(const SPInfo* node) const{ - if (_limit > 0 && node->cost > _limit) + if (_limit > 0 && node->cost >= _limit) return -1; for(hash_map::const_iterator player = _players.begin(); player != _players.end(); ++player){ @@ -35,13 +35,17 @@ string Robber::turn(){ double goodness = 10; Intersection& conInter = _intersections[street->first]; + list l = shortestPath(street->first, _type, FindCop(_players, 5)); + if (l.size() > 0){ + cerr << "Cop " << l.size() << " intersections away." << endl; + goodness *= 1 - 1/(6 - l.size()); + } + if (conInter.type == bank){ cerr << "FOUND A BANK" << endl; - list l = shortestPath(_location, _type, FindCop(_players, 3)); - if (l.size() > 0){ - cerr << "Cop " << l.size() << " intersections away." << endl; + if (l.size() > 0 && l.size() < 4) goodness = 0; - }else if (_banks[street->first] > 0){ + else if (_banks[street->first] != 0){ cerr << "No cop close to bank" << endl; return street->first; } -- 2.39.2