iniciar-programa
   define-nueva-instruccion dug(n) como inicio
      si no-junto-a-zumbador entonces
         deja-zumbador;
      repetir precede(n) veces inicio
         avanza;
         si no-junto-a-zumbador entonces
            deja-zumbador;
      fin;
      si no si-es-cero(precede(n)) entonces inicio
         repetir 3 veces
            gira-izquierda;
         avanza;
         repetir 3 veces
            gira-izquierda;
         mientras frente-libre hacer
            avanza;
         repetir 2 veces
            gira-izquierda;
         dug(precede(n));
      fin;
   fin;
   define-nueva-instruccion dugla(n) como inicio
      si no-junto-a-zumbador entonces
         deja-zumbador;
      repetir precede(n) veces inicio
         avanza;
         si no-junto-a-zumbador entonces
            deja-zumbador;
      fin;
      si no si-es-cero(precede(n)) entonces inicio
         gira-izquierda;
         avanza;
         gira-izquierda;
         mientras frente-libre hacer
            avanza;
         repetir 2 veces
            gira-izquierda;
         dugla(precede(n));
      fin;
   fin;
   define-nueva-instruccion duglass(n) como inicio
       repetir n veces
          avanza;
       gira-izquierda;
       si no si-es-cero(precede(n)) entonces
          dug(precede(n));
       gira-izquierda;
       mientras frente-libre hacer
          avanza;
       repetir 2 veces
          gira-izquierda;
       repetir precede(n) veces
          avanza;
       gira-izquierda;
       dugla(n);
       si algun-zumbador-en-la-mochila entonces inicio
           repetir 2 veces
              gira-izquierda;
           mientras frente-libre hacer
              avanza;
           gira-izquierda;
           duglass(sucede(n));
       fin
       sino inicio
          repetir 3 veces
             gira-izquierda;
          avanza;
          mientras junto-a-zumbador hacer inicio
             avanza;
             gira-izquierda;
             avanza;
             repetir 3 veces
                gira-izquierda;
          fin;
          repetir 2 veces
             gira-izquierda;
          avanza;
          apagate;
       fin;
   fin;
    inicia-ejecucion
       mientras no-orientado-al-este hacer
          gira-izquierda;
       duglass(1);
        apagate;
    termina-ejecucion
finalizar-programa
