iniciar-programa

define-nueva-instruccion gd como repetir 3 veces gira-izquierda;

define-nueva-instruccion md como repetir 2 veces gira-izquierda;

define-nueva-instruccion iz como  gira-izquierda;

define-nueva-instruccion pared como mientras frente-libre hacer avanza;

define-nueva-instruccion norte como inicio
    si orientado-al-este entonces iz;
    si orientado-al-sur entonces md;
    si orientado-al-oeste entonces gd;
fin;
define-nueva-instruccion pasar como inicio
     si no-junto-a-zumbador y frente-libre entonces inicio
         avanza;
         pasar;
         avanza;
     fin
     sino inicio
         si frente-bloqueado y no-junto-a-zumbador entonces apagate;
         coge-zumbador;
         pared;
         iz;
         mientras derecha-bloqueada y frente-libre hacer avanza;
         gd;
         avanza;
         gd;
         avanza;
         mientras derecha-bloqueada y frente-libre hacer avanza;
         iz;
    fin;
fin;
    inicia-ejecucion
    norte;
    gd;
    mientras frente-libre o frente-bloqueado hacer inicio
    pasar;
    deja-zumbador;
    md;
    pared;
    gd;
    mientras izquierda-bloqueada y frente-libre hacer avanza;
    iz;
    avanza;
    iz;
    avanza;
    mientras izquierda-bloqueada y frente-libre hacer avanza;
    gd;
    pared;
    md;
    fin;
    apagate;
    termina-ejecucion
finalizar-programa
 