Welcome, Adventurer. Your aim is to navigate the maze and reach the finish point without touching any walls. Doing so will kill you instantly!
You will be given a 2D array of the maze and an array of directions. Your task is to follow the directions given. If you reach the end point before all your moves have gone, you should return Finish. If you hit any walls or go outside the maze border, you should return Dead. If you find yourself still in the maze after using all the moves, you should return Lost.
The Maze array will look like
maze = [[1,1,1,1,1,1,1],
[1,0,0,0,0,0,3],
[1,0,1,0,1,0,1],
[0,0,1,0,0,0,1],
[1,0,1,0,1,0,1],
[1,0,0,0,0,0,1],
[1,2,1,0,1,0,1]]
..with the following key
0 = Safe place to walk
1 = Wall
2 = Start Point
3 = Finish Point
For the above example, direction = ["N","N","N","N","N","E","E","E","E","E"]
should get you to the end!
Rules
The Maze array will always be square i.e. N x N but its size and content will alter from test to test.
The start and finish positions will change for the final tests.
The directions array will always be in upper case and will be in the format of N = North, E = East, W = West and S = South.
If you reach the end point before all your moves have gone, you should return Finish.
If you hit any walls or go outside the maze border, you should return Dead.
If you find yourself still in the maze after using all the moves, you should return Lost.
Good luck, and stay safe!
Tests
Maze:
var maze = [[1,1,1,1,1,1,1],
[1,0,0,0,0,0,3],
[1,0,1,0,1,0,1],
[0,0,1,0,0,0,1],
[1,0,1,0,1,0,1],
[1,0,0,0,0,0,1],
[1,2,1,0,1,0,1]];
Tests
["N","N","N","N","N","E","E","E","E","E"]
["N","N","N","W","W"]
["N","E","E","E","E"]
Good luck!
This challenge comes from adrian.eyre on CodeWars. Thank you to CodeWars, who has licensed redistribution of this challenge under the 2-Clause BSD License!
Want to propose a challenge idea for a future post? Email yo+challenge@dev.to with your suggestions!
Top comments (3)
ES6
Here is the simple way with PHP to traverse two dimensional arrays and get current moving states :).
One with full typing info in typescript...
Some sanity checking
woop πΊπ