iniciar-programa
    define-nueva-instruccion gira (n) como repetir n veces gira-izquierda;
    define-nueva-instruccion pon (n) como
          si junto-a-zumbador entonces
             inicio
                coge-zumbador;
                pon (sucede(n))
             fin
          sino
             inicio
                repetir n veces
                   inicio
                      deja-zumbador;
                      avanza;
                   fin;
                apagate
             fin;
    define-nueva-instruccion brrr (n) como
       si frente-libre entonces
          si junto-a-zumbador entonces
             inicio
                repetir 2 veces coge-zumbador;
                avanza;
                brrr (sucede(n))
             fin
          sino
             inicio
                avanza;
                brrr (n)
             fin
       sino
          inicio
             gira (2);
             mientras frente-libre hacer
                avanza;
             gira (2);
             repetir n veces
                inicio
                   repetir 2 veces deja-zumbador;
                   avanza;
                fin;
             mientras frente-libre hacer
                avanza;
             gira (2);
             pon (0)
                     fin;
    define-nueva-instruccion cuenta (n) como
       si frente-libre entonces
          si junto-a-zumbador entonces
                inicio
                   coge-zumbador;
                   si junto-a-zumbador entonces
                      inicio
                         deja-zumbador;
                         avanza;
                         cuenta (n)
                      fin
                   sino
                      inicio
                         avanza;
                         cuenta (sucede(n))
                      fin
                fin
           sino
              inicio
                 avanza;
                 cuenta(n)
              fin
       sino
          inicio
             gira (2);
             mientras frente-libre hacer
                avanza;
             gira (2);
             si junto-a-zumbador entonces
                inicio
                   repetir 2 veces coge-zumbador;
                   avanza;
                   mientras junto-a-zumbador hacer
                      avanza;
                   repetir 2 veces deja-zumbador;
                   gira (2);
                   mientras frente-libre hacer
                      avanza;
                   gira (2);
                   repetir n veces deja-zumbador
                fin
             sino
                repetir n veces deja-zumbador;
             mientras frente-libre hacer
                avanza;
             si junto-a-zumbador entonces
                inicio
                   coge-zumbador;
                   si junto-a-zumbador entonces
                      deja-zumbador
                   sino
                      inicio
                         gira (2);
                         mientras frente-libre hacer
                            avanza;
                         deja-zumbador;
                         gira (2);
                         mientras frente-libre hacer
                            avanza
                      fin
                fin;

             gira (2);
                brrr (0);


          fin;





    inicia-ejecucion
    mientras no-orientado-al-oeste hacer
       gira (1);
    mientras frente-libre hacer
       avanza;
    gira (2);
    cuenta (0)












    termina-ejecucion
finalizar-programa
