Именно и не так. Вы пытаетесь искать путь не найдя конечной точки и там же уже отмечаете +. + должен проставляться
аж после нахождения конечной точки (цикл 6).
Кратко ваш алгоритм выдает следующее: есть проход на юг? ставим +. есть проход на юг? ставим + ....... нет прохода ? ставим х и пытаемся искать путь восток/запад/северю
Точ то вы реализовали называется "в обход"
Почитайте вот тут:
http://pmg.org.ru/ai/stout.htm