Я делал так:
Поле разбил на клетки, Так оно хотя и грубее, но проще. Стены клеточные, проходы клеточные. При этом все проходы шириной в одну клетку.
От идеи дать монстрам способность постоянно преследовать Пакмена я отказался. Если так сделать, то они либо вскорости его загонят, либо увяжутся за ним гуськом. Поэтому схема была такая: монстр тупо бежит по корридору, пока либо не уткнется в стену, либо не добежит до развилки. Если он забежал в тупик/дошел до поворота/развилки, тогда он смотрит, какие есть возможные пути и рандомно выбирает любой из них. И опять бежит.
В принципе, к этому можно добавить еще такую проверку: если монстр видит Пакмена по прямой линии, тогда он бросается к нему. А если не видит, то продолжает бродить рандомно.
Можно, конечно, сделать и волновой алгоритм, но стоит ли? Разве что для уровня "Nightmare"