iniciar-programa
define-nueva-instruccion pared(n) como
inicio

si frente-libre entonces
inicio
avanza;
pared(sucede(n));
fin
sino inicio
si frente-bloqueado entonces
repetir 2 veces gira-izquierda;
mientras frente-libre hacer avanza;
repetir 3 veces gira-izquierda;
mientras frente-libre hacer avanza;
repetir 3 veces gira-izquierda;
mientras frente-libre hacer avanza;
si frente-bloqueado entonces
repetir 2 veces gira-izquierda;
repetir n veces avanza;
gira-izquierda;
mientras frente-libre hacer avanza;
si frente-bloqueado entonces deja-zumbador;
fin;
fin;
    inicia-ejecucion
    si frente-bloqueado y orientado-al-este entonces
repetir 2 veces gira-izquierda;
mientras frente-libre hacer avanza;
si orientado-al-oeste entonces
gira-izquierda;
    pared(0);
        apagate;
    termina-ejecucion
finalizar-programa
