iniciar-programa
define-nueva-instruccion a(x) como inicio
     si orientado-al-sur y derecha-libre y frente-libre entonces inicio
         si frente-libre entonces avanza;
         a(precede(x));
         fin;
         si orientado-al-norte y derecha-libre y frente-libre entonces inicio
             si frente-libre entonces avanza;
             a(sucedE(x));
             fin;
            si derecha-libre y orientado-al-este o  orientado-al-oeste entonces inicio
                si frente-libre entonces avanza;
                fin;
                 si frente-bloqueado entonces inicio
                     repetir x veces deja-zumbador;
                     apagate;
                     fin;
                     si derecha-bloqueada entonces gira-izquierda;  
                 a(x);
      fin;
    inicia-ejecucion
            a(0);
        apagate;
    termina-ejecucion
finalizar-programa
