iniciar-programa
    define-nueva-instruccion gira(n) como inicio
       repetir n veces
          gira-izquierda;
    fin;
    define-nueva-instruccion norte como inicio
       mientras no-orientado-al-norte hacer
          gira(1);
    fin;
    define-nueva-instruccion este como inicio
       mientras no-orientado-al-este hacer
          gira(1);
    fin;
    define-nueva-instruccion sur como inicio
       mientras no-orientado-al-sur hacer
          gira(1);
    fin;
    define-nueva-instruccion oeste como inicio
       mientras no-orientado-al-oeste hacer
          gira(1);
    fin;
    define-nueva-instruccion duplica como inicio
       si junto-a-zumbador entonces inicio
          coge-zumbador;
          duplica;
          deja-zumbador;
          norte;
          avanza;
          deja-zumbador;
          este;
          avanza;
          deja-zumbador;
          sur;
          avanza;
          deja-zumbador;
          oeste;
          avanza;
          este;
       fin
       sino inicio
          si frente-libre entonces inicio
             avanza;
             duplica;
             avanza;
             avanza;
          fin
          sino inicio
             sur;
             si frente-libre entonces inicio
                avanza;
                este;
                mientras frente-libre hacer
                   avanza;
                oeste;
                duplica;
                norte;
                avanza;
                avanza;
                oeste;
                mientras frente-libre hacer
                   avanza;
                este;
             fin
             sino inicio
                norte;
                mientras frente-libre hacer
                   avanza;
                este;
                mientras izquierda-bloqueada hacer
                   avanza;
                sur;
                avanza;
                mientras izquierda-bloqueada hacer
                  avanza;
                este;
                avanza;
                mientras izquierda-bloqueada hacer
                   avanza;
                norte;
                avanza;
                mientras izquierda-bloqueada hacer
                   avanza;
                  oeste;
                 mientras frente-libre hacer
                    avanza;
                 sur;
                 mientras frente-libre hacer
                    avanza;
                 este;
             fin;
          fin;
       fin;
    fin;
    inicia-ejecucion
        oeste;
        duplica;
        apagate;
    termina-ejecucion
finalizar-programa