Thanks for the feedback.

Since this game worked out reasonably well I'm working through seed ideas for a bigger, more ambitious game using some ideas gleamed while writing this one. This is great, since ideally 48hr game jams can sometimes serve to prototype mechanics that can be polished and expanded into bigger things.
The enemy AI is a finite state machine with 10 states:-
0 is inactive - waiting in a room. Go to 1 if made active.
1 is just seen player. pause for a moment in surprise.
2 is go after player, if player can be seen, otherwise go to 3.
3 is go after last location saw player in. If reached or blocked, go to 4.
4 is go after last direction saw player in (currently for too short a distance and time)
5 is waiting briefly outdoors at the beginning of the game, before going to 6.
6 is wandering after choosing a random tile to go towards.
7 is pausing from persuing player, if time to persue runs out or enemy is blocked. Go to 3
8 is pausing from searching for player before moving to searching in last known direction. Go to 6 if fails.
9 is attacking player melee style, if on same tile.
This is the second time I've used that Field Of Vision algorithm for real-time action. It wasn't designed for that but it turns out its fine! While I was making the game I realised there was a way to optimize it even further so it can be used for much larger maps. The game map is 120x120, so 14400 tiles. I can now push the map size to hundreds of thousands of tiles without slowing down the Field Of Vision in real time. What I will need then is to search the net for very fast pathfinding algorithms dealing with large tile-based maps (that can use memory and pre-calculation for efficient path finding).