iniciar-programa
define-nueva-instruccion atras como inicio
gira-izquierda;
gira-izquierda;
fin;
define-nueva-instruccion derecha como inicio
atras;
gira-izquierda;
fin;
define-nueva-instruccion av(x) como inicio
si derecha-bloqueada y frente-libre entonces inicio
gira-izquierda;
fin;
mientras frente-libre y derecha-libre y orientado-al-norte hacer inicio
avanza;
av(sucede(x));
fin;
si derecha-bloqueada y frente-libre entonces inicio
gira-izquierda;
fin;
mientras frente-libre y derecha-libre y orientado-al-sur hacer inicio
avanza;
av(precede(x));
fin;
si derecha-bloqueada y frente-libre entonces inicio
gira-izquierda;
fin;
mientras no-orientado-al-norte y no-orientado-al-sur y frente-libre y derecha-libre hacer inicio
avanza;
av(x);
fin;
si derecha-bloqueada y frente-libre entonces inicio
gira-izquierda;
fin;
si frente-bloqueado entonces inicio
repetir x veces inicio
deja-zumbador;
fin;
apagate;
fin;
fin;
    inicia-ejecucion
    av(0);
        apagate;
    termina-ejecucion
finalizar-programa
 