Niki rennt nach der treppe immer gegen die wand

Also Niki der roboter soll zu treppe hingehen sie hochgehen sich auf der obersten stufe umdrehen und die treppe wieder runter gehen und dann wieder zurrück zum start mein Problem ist das Niki immer nach dem ende der treppe die treppe weiter runter gehen will und dann gegen die wand rennt.

so weit bin ich schon:

PROGRAM Podest;
PROCEDURE drehe_um;
BEGIN
drehe_links;
drehe_links;
END;
PROCEDURE drehe_rechts;
BEGIN
drehe_links;
drehe_links;
drehe_links;
END;
PROCEDURE treppe_hoch;
BEGIN
drehe_links;
vor;
drehe_rechts;
vor;
END;
PROCEDURE treppe_runter;
BEGIN
vor;
drehe_links;
vor;
drehe_rechts;
END;

BEGIN
ARBEITSFELD(podest);
WHILE vorne_frei DO vor;
WHILE NOT vorne_frei DO treppe_hoch;
drehe_um;
WHILE vorne_frei DO treppe_runter;

END.