diff options
| author | Jérémy Zurcher <jeremy@asynk.ch> | 2015-12-31 02:40:42 +0100 | 
|---|---|---|
| committer | Jérémy Zurcher <jeremy@asynk.ch> | 2015-12-31 02:40:42 +0100 | 
| commit | 5b359edb7a575838ba7ccc33fb5eefd946915b0d (patch) | |
| tree | bdcc628df610668ad392b249064e1565ba1f217e | |
| parent | 97e8ffc7115d100e29e50f3a80bc933eba89bd78 (diff) | |
| download | RustAndDust-5b359edb7a575838ba7ccc33fb5eefd946915b0d.zip RustAndDust-5b359edb7a575838ba7ccc33fb5eefd946915b0d.tar.gz | |
PathBuilder: fitness is the count of reached objectives
| -rw-r--r-- | core/src/ch/asynk/rustanddust/engine/PathBuilder.java | 10 | 
1 files changed, 4 insertions, 6 deletions
| diff --git a/core/src/ch/asynk/rustanddust/engine/PathBuilder.java b/core/src/ch/asynk/rustanddust/engine/PathBuilder.java index e941632..c458369 100644 --- a/core/src/ch/asynk/rustanddust/engine/PathBuilder.java +++ b/core/src/ch/asynk/rustanddust/engine/PathBuilder.java @@ -117,12 +117,11 @@ public class PathBuilder implements Disposable      public int choosePath()      {          if (paths.size() > 1) { -            int f = Integer.MAX_VALUE; -            Path good = null; +            Path good = paths.get(0);              for (Path path : paths) { -                if (path.fitness < f) { +                if ( (path.fitness > good.fitness) || ((path.fitness == good.fitness) && (path.cost < good.cost))) { +                    good = path;                      good = path; -                    f = path.fitness;                  }              } @@ -148,8 +147,7 @@ public class PathBuilder implements Disposable              Orientation o = board.getSide(i);              int n = next.costFrom(pawn, o);              boolean r = next.road(o); -            int f = (fitness + 1 + (r ? 0 : 1)); -            if (next.isObjectiveFor(pawn)) f -= 4; +            int f = (fitness + (next.isObjectiveFor(pawn) ? 1 : 0));              int m = (mvtLeft - n);              r &= roadMarch; | 
