iniciar-programa
    define-nueva-instruccion gira(n) como inicio
        repetir n veces
            gira-izquierda;
    fin;
    define-nueva-instruccion perimetro como inicio
        si izquierda-bloqueada y no-junto-a-zumbador entonces inicio
            avanza;
            perimetro;
            si frente-libre entonces
                avanza;
            deja-zumbador;
        fin
        sino inicio
            si junto-a-zumbador entonces inicio
                gira(2);
                mientras frente-libre hacer
                   avanza;
                gira(1);
                mientras frente-libre hacer
                    avanza;
            fin;
            si derecha-libre entonces inicio
                gira(1);
                avanza;
                perimetro;
            fin;
        fin;
    fin;

    inicia-ejecucion
       mientras no orientado-al-norte hacer
          gira(1);
       gira(3);
       avanza;
       gira(1);
       mientras frente-libre hacer
          avanza;
       deja-zumbador;
       gira(3);
       avanza;
       perimetro;
       deja-zumbador;
       apagate;
    termina-ejecucion
finalizar-programa