Maze Solving Bot (Dijkstra's Algorithm)
BenjaminGrass (13)

Create by a maze and this bot will find the shortest solution!

https://repl.it/@BenjaminGrass/Maze-Solving-Bot-Dijkstras-Algorithm

Just a few notes:
1. To create the maze enter 1's (the path) and 0's (the walls of the maze).
2. The maze must have a uniform row size.
3. There can only be one start (in the top row) and one finish (in the bottom row).
4. The maze can have any number of rows & columns!
5. The shortest path is represented by 2's after the algorithm has run.
Here's an example maze (albeit a simple one):
010
010
010

Comment any bugs you encounter please!

You are viewing a single comment. View All
scawsome (0)

For the input
00001000000
01111001110
01001001010
01111011010
00010010110
00111110100
00000001110
01111110010
01001011110
01111000000
00100000000

(The path requires going up, down, left and right, and has a few forks which meet up, with one fork being shorter than the other)

It follows the rules mentioned elsewhere in this page (only 1 start, end, uniform length rows, 0's on either side as retaining walls), so I'm not sure what the issue is.

It errors out with:

Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
at java.util.ArrayList.rangeCheck(ArrayList.java:657)
at java.util.ArrayList.get(ArrayList.java:433)
at Node.getSmallest(Node.java:49)
at Main.dijkstra(Main.java:130)
at Main.dijkstra(Main.java:159)
at Main.dijkstra(Main.java:159)
at Main.dijkstra(Main.java:159)
at Main.dijkstra(Main.java:159)
at Main.dijkstra(Main.java:159)
at Main.dijkstra(Main.java:159)
at Main.dijkstra(Main.java:159)
at Main.dijkstra(Main.java:159)
at Main.dijkstra(Main.java:159)
at Main.dijkstra(Main.java:159)
at Main.dijkstra(Main.java:159)
at Main.dijkstra(Main.java:159)
at Main.dijkstra(Main.java:159)
at Main.dijkstra(Main.java:159)
at Main.dijkstra(Main.java:159)
at Main.dijkstra(Main.java:159)
at Main.main(Main.java:107)