| Summary: | I could not get the next direction for a ghost when using A* | ||
|---|---|---|---|
| Product: | Group14-Pacman | Reporter: | Aleksa <ajelaca2-c> |
| Component: | Game | Assignee: | YANG Tianxia <tianxyang3-c> |
| Status: | RESOLVED FIXED | ||
| Severity: | enhancement | CC: | tianxyang3-c |
| Priority: | High | ||
| Version: | 0.0.2 | ||
| Hardware: | PC | ||
| OS: | Windows | ||
It turned out that when the start and end in ArrayList<Tuple> getPath(Tuple start, Tuple end, ArrayList<Direction> possibleDirections) in class A_star are the same point, A* algorithm will return an ArrayList of size 1. After A* returned a path of size 1, I tried to access a Tuple at index 1, so I got an exception. The solution is to check the Arraylist size with conditional before trying to access out of bounds indeces. |
I ran Main.java and instructed PacMan to move until the console showed the following Maze state: P is PacMan's position * is his starting position W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W F F F F F F F F F F F F F F F F F F F F F F F F F F F W W F W W W W W W W W W W F W W W F W W W W W W W W W W F W W F W W W W W W W W W W F W W W F W W W W W W W W W W F W W F W W W W W W W F F F F W W W F F F F W W W W W W W F W W F F F F F F F W F W W W W W W W W W F W F F F F F F F W W W W W W W W F W F W W W W W W W W W F W F W W W W W W W W F W F W W W W W W W W W F W F W W F F F F F F F F F F F F F F F W W F W F W W W W W W W W W F W F W W W W W F W F W W W W W W W W W F W F W W W W W F F F F W F W W W W W W W W W F W F F F F W W F W W W W F F F F F F F F F F F W W W W F W W W W F W W W W F W W W W W W W W F W W W W F W W W W F F F F F F F F W O W F F F F F F F F W W F W W W F W W F W W F W W F W W W F W W F W W W F W W F W W F W W F W W W F W W F F F W F W W F W W W W W W W W W F W W F W F F F W W W W F W F W W F * F F F F F F W W F W F W W W W F W F W W W W W W W W W F W W W W F W F W W W W W F W F W W W W W W W W W F W W W W F W F W W W W W F F F W W W W W F F F F F F F F F F F W W W W W W W W W F W W W W W W W W W F W W W W F W W W W W W W W W F W W W W W W W W W B W W W W F W W W I W F W W W W W W W F W W W W W F W W W W W F W W W W W W W W W F W W W W W F W W W W W F W W W W W W F F F W W W W W F F F W W F F F P W W W W W W W F W W W W W W W W W F W W W W W W W W W W W W F W W W W W W W W W F W W W W W R W W W W F F F F F F F F F F F W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W I got a following exception from Visual Studio Code: Exception in thread "main" java.lang.IndexOutOfBoundsException: Index 1 out of bounds for length 1 at java.base/jdk.internal.util.Preconditions.outOfBounds(Preconditions.java:64) at java.base/jdk.internal.util.Preconditions.outOfBoundsCheckIndex(Preconditions.java:70) at java.base/jdk.internal.util.Preconditions.checkIndex(Preconditions.java:248) at java.base/java.util.Objects.checkIndex(Objects.java:372) at java.base/java.util.ArrayList.get(ArrayList.java:459) at Game.A_star.getNextDirection(A_star.java:168) at Game.Ghost.moveToTarget(Ghost.java:119) at Game.ChaseAmbush.behave(ChaseAmbush.java:28) at Game.Game.moveGhosts(Game.java:174) at Game.Game.handleMovements(Game.java:114) at Game.Game.gameTick(Game.java:61) at Game.Main.main(Main.java:30)