iniciar-programa
define-nueva-instruccion gira(n) como
inicio
repetir n veces gira-izquierda;
fin;
define-nueva-instruccion recorre(n) como
inicio

mientras frente-libre y (izquierda-libre o derecha-libre) hacer avanza;
si frente-bloqueado entonces
inicio
gira(1);
mientras frente-libre hacer avanza;
gira(2);
fin;
mientras izquierda-bloqueada y orientado-al-oeste y frente-libre hacer avanza;
si frente-bloqueado y izquierda-bloqueada entonces
inicio
repetir n veces deja-zumbador;
apagate;
fin;
si orientado-al-oeste y izquierda-libre entonces
inicio
gira(1);
si frente-libre entonces avanza;
fin;

si orientado-al-sur y izquierda-bloqueada y derecha-bloqueada entonces
inicio
si frente-libre entonces avanza;
recorre(sucede(n));
fin
sino
inicio
recorre(n);
fin;

fin;
    inicia-ejecucion
    recorre(0);
        apagate;
    termina-ejecucion
finalizar-programa
