On another page I have a demo of using Breadth First Search to calculate the movement range. This works if movement costs are all 1, either 4-way or 8-way on a square grid. But what if we want diagonal movement to cost 1.5 or √2? Then we need to switch from Breadth First Search to Dijkstra's Algorithm.
Click on a tile to toggle the wall.