iniciar-programa
    define-nueva-instruccion pm como
    inicio
       si frente-libre entonces
       inicio
          repetir 2 veces
          inicio
             avanza;
             repetir 3 veces
               gira-izquierda;
             avanza;
             gira-izquierda;
             coge-zumbador;
          fin;
          pm;
          avanza;
             repetir 3 veces
               gira-izquierda;
             avanza;
             gira-izquierda;
       fin
       sino
       inicio
          gira-izquierda;
          gira-izquierda;
       fin;
    fin;
    define-nueva-instruccion perimetro(n) como
    inicio
       repetir 4 veces
       inicio
          repetir 2 veces
          repetir n veces
          inicio
              avanza;
              repetir sucede(n) veces
                 deja-zumbador;
          fin;
          gira-izquierda;
       fin;
    fin;
    define-nueva-instruccion acaba(n) como
    inicio
       mientras no-orientado-al-sur hacer
          gira-izquierda;
       si frente-libre entonces
       inicio
           avanza;
           gira-izquierda;
           avanza;
           gira-izquierda;
           perimetro(n);
           acaba(sucede(n));
       fin;
    fin;
    inicia-ejecucion
       mientras no-orientado-al-este hacer
          gira-izquierda;
          deja-zumbador;
       mientras frente-libre y izquierda-libre hacer
       inicio
          repetir 2 veces
             si frente-libre y izquierda-libre entonces
             inicio
                avanza;
                gira-izquierda;
                avanza;
                repetir 3 veces
                   gira-izquierda;
                deja-zumbador;
             fin
             sino
                coge-zumbador;
       fin;
       si no-junto-a-zumbador entonces
       inicio
          repetir 3 veces
             gira-izquierda;
          avanza;
          repetir 3 veces
             gira-izquierda;
          avanza;
          gira-izquierda;
       fin
       sino
          repetir 3 veces
             gira-izquierda;
       coge-zumbador;
       pm;
       deja-zumbador;
       acaba(1);
       apagate;
    termina-ejecucion
finalizar-programa
