> Is it so strange that after spending fifteen years of my life trying everything I could to get away from spending all day wrangling a big ball of mud in a Java IDE, that experience sounds pretty cozy to return to?
Relatable experience in software.
Also might lead to the reactionary conservatism she hated in those "frustrating programmers", that liked their toil of assembly and muddy type systems.
Python fails this criteria because if you type as you think through the process, you have to move the cursor to the beginning to prefix the 'map' around the input.
For example this series of transforming the input:
A modified A* that solves the fire routing problem (less efficiently than OP's I think).
Each A* location stores where it comes from, how long it takes to get to it, and how many fires it passed through to get there. The algorithm only considers fire cells neighbors if the current number of fires passed through is less than the current fireWillingness global.
1. count fire tiles within movement range
2. run A* from src to dst completely avoiding fire
3. if we can reach then that's the solution
4. if we can't reach, increase fireWillingness to 1, re-run A* on the board
5. keep increasing fire-willingness until the A* results don't change, or we can now reach the dst.
This works because a low fire path is always better than a high fire path. And increasing fire-tolerance will only shorten the paths from src to dst.
Relatable experience in software.
Also might lead to the reactionary conservatism she hated in those "frustrating programmers", that liked their toil of assembly and muddy type systems.