iniciar-programa
define-nueva-instruccion g(x) como repetir x veces gira-izquierda;
define-nueva-instruccion rodea(num) como inicio
repetir 3 veces inicio
    g(3);
   si frente-libre entonces inicio avanza;
     repetir num veces inicio
                si junto-a-zumbador entonces inicio
                coge-zumbador;
                fin sino inicio

                fin;
             fin;
             si junto-a-zumbador  entonces inicio
              repetir num veces deja-zumbador;
              sal-de-instruccion;
             fin sino inicio
              mientras algun-zumbador-en-la-mochila hacer deja-zumbador;
              g(2);
              avanza;
              g(2);
             fin;
             fin;

             fin;
             apagate;
fin;
    define-nueva-instruccion checa(num) como inicio
         si junto-a-zumbador entonces inicio
          coge-zumbador;
          checa(sucede(num));
         fin sino inicio
             repetir num veces deja-zumbador;
             si frente-libre entonces inicio
             avanza;
             fin sino inicio
             rodea(num);
              checa(0);
             fin;
             repetir num veces inicio
                si junto-a-zumbador entonces inicio
                coge-zumbador;
                fin sino inicio

                fin;
             fin;
             si junto-a-zumbador  entonces inicio
              repetir num veces deja-zumbador;
              checa(0);
             fin sino inicio
              mientras algun-zumbador-en-la-mochila hacer deja-zumbador;
              g(2);
              avanza;
              g(2);
              rodea(num);
              checa(0);
             fin;
         fin;
    fin;
    inicia-ejecucion
        mientras no-orientado-al-sur hacer gira-izquierda;
        repetir 2 veces inicio
          mientras frente-libre y junto-a-zumbador hacer avanza;
          si junto-a-zumbador entonces inicio
           g(3);
          fin sino inicio
           g(2);
           avanza;
           g(1);
          fin;
          fin;
          checa(0);
        apagate;
    termina-ejecucion
finalizar-programa