Когда алгоритм делаешь, запиши его сначала псевдокодом. Псевдокод не требует соблюдения синтаксиса, поэтому на нём алгоритм проще записывать и его проще менять, если он неправильный в плане алгоритма. Когда на псевдокоде правильный алгоритм будет записан, тогда уже можно и на питон этот псевдокод перевести.
Решение задачи на псевдокоде
цикл пока сверху_стена и слева_не_стена выполнять
шагнуть_влево
конец цикла
если сверху_стена то
цикл пока сверху_стена и справа_не_стена выполнять
шагнуть_вправо
конец цикла
конец если
если сверху_не_стена то
цикл пока сверху_не_стена выполнять
шагнуть_вверх
конец цикла
цикл пока слева_не_стена выполнять
шагнуть_влево
конец цикла
конец если
Ещё эти части алгоритма написаны раздельно, хотя на первый взгляд их там можно соединить в одну конструкцию. Это разделение делается для того, чтобы каждую часть можно было спрятать внутри своей процедуры, не зависящей от других процедур.