iniciar-programa
define-nueva-instruccion llena como
inicio
   deja-zumbador;
   repetir 4 veces
   inicio
      si frente-libre entonces
      inicio
         avanza;
         si no junto-a-zumbador entonces
            llena;
         gira-izquierda;
         gira-izquierda;
         avanza;
         gira-izquierda;
         gira-izquierda;
      fin;
      gira-izquierda;
   fin;
fin;
define-nueva-instruccion recorre(n) como
inicio
   mientras frente-libre o derecha-libre hacer
   inicio
      si no junto-a-zumbador entonces
      inicio
         llena;
         recorre(sucede(n));
      fin;
      si frente-libre entonces
        avanza
      sino
         si derecha-libre entonces
         inicio
            gira-izquierda;
            gira-izquierda;
            mientras frente-libre hacer
               avanza;
            gira-izquierda;
            avanza;
            gira-izquierda;
         fin;
   fin;
   si no junto-a-zumbador entonces
      llena;
   mientras no orientado-al-oeste hacer
      gira-izquierda;
   mientras frente-libre hacer
       avanza;
   gira-izquierda;
            mientras frente-libre hacer
               avanza;
   mientras junto-a-zumbador hacer
      coge-zumbador;
   repetir precede(n) veces
      deja-zumbador;
   apagate;
fin;
    inicia-ejecucion
       mientras no orientado-al-norte hacer
          gira-izquierda;
       mientras frente-libre hacer
          avanza;
       gira-izquierda;
        mientras frente-libre hacer
          avanza;
       gira-izquierda;
       gira-izquierda;
       recorre(0);
        apagate;
    termina-ejecucion
finalizar-programa
