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