iniciar-programa
 define-nueva-instruccion gira(n)  como  repetir n veces gira-izquierda;
    define-nueva-instruccion g(x) como inicio
      si junto-a-zumbador entonces inicio
       coge-zumbador;
        g(sucede(x));
           fin sino inicio
            repetir 2 veces inicio
                  repetir x veces avanza;
          si algun-zumbador-en-la-mochila entonces deja-zumbador;
             gira(2);
              repetir x veces avanza;
               fin;
               repetir 2 veces inicio
                 gira-izquierda;
                  repetir x veces avanza;
                  si algun-zumbador-en-la-mochila entonces deja-zumbador;
                    gira(2);
                     repetir x veces avanza;
                     gira(3);
               fin;
                 mientras no-junto-a-zumbador hacer avanza;
                     gira-izquierda;
               repetir x veces inicio
             avanza;
             gira(1);
             avanza;
              si no-junto-a-zumbador y algun-zumbador-en-la-mochila entonces deja-zumbador;
             gira(3);
               fin;
               repetir 4 veces inicio
               gira-izquierda;
                  repetir x veces inicio
             avanza;
             gira-izquierda;
             avanza;
              si no-junto-a-zumbador y algun-zumbador-en-la-mochila entonces deja-zumbador;
             gira(3);
               fin;
              fin;
      fin;
     fin;
   inicia-ejecucion
    mientras no-orientado-al-este hacer gira-izquierda;
     g(0);
        apagate;
    termina-ejecucion
finalizar-programa
