public double takeWaterHuristic(TravelSearchState state) { if (state.CarryWatter) { return(0); } TravelWorld world = state.ToWorld(); if (world.HaveWater(state.CurrentLocation)) { return(1); } var paths = world.findCheapestWaterPaths(state.CurrentLocation); if (paths == null || paths.Count() == 0) { return(double.MaxValue); } TravelPath path = paths.First(); return(path.Cost()); }
public double goToLowerPlace(TravelSearchState state) { return(state.CurrentLocation - 1); }