iniciar-programa
 define-nueva-instruccion gira(n) como
  inicio
   repetir n veces
    gira-izquierda;
  fin;
 define-nueva-instruccion mide(n) como
   inicio
    si frente-libre entonces
     inicio
      avanza;
      mide(sucede(sucede(n)));
     fin
    sino
     inicio
      gira(2);
      mientras frente-libre hacer
       avanza;
      gira-izquierda;
      mientras frente-libre hacer
       avanza;
      repetir n veces
       deja-zumbador;
     fin;
    fin;
  define-nueva-instruccion mideotro(n) como
   inicio
    si frente-libre entonces
     inicio
      avanza;
      mideotro(sucede(sucede(Sucede(n))));
     fin
    sino
     inicio
      gira(2);
      mientras frente-libre hacer
       avanza;
      gira-izquierda;
      mientras frente-libre hacer
       avanza;
      gira-izquierda;
      avanza;
      repetir n veces
       deja-zumbador;
     fin;
    fin;

    inicia-ejecucion
    mientras no-orientado-al-este hacer
     gira-izquierda;
    repetir 4 veces
     avanza;
    repetir 250 veces
     coge-zumbador;
    gira(2);
    repetir 4 veces
     avanza;
    gira(3);
    repetir 2 veces
     avanza;
    gira(3);
    repetir 2 veces
     avanza;
    mide(0);
    gira(2);
    repetir 5 veces
     avanza;
    gira(3);
    repetir 2 veces
     avanza;
    mideotro(0);
    repetir 3 veces
     avanza;
    mientras algun-zumbador-en-la-mochila hacer
     deja-zumbador;
    gira(2);
    mientras frente-libre hacer
     avanza;
    gira(2);
    mientras junto-a-zumbador hacer
     inicio
      coge-zumbador;
      avanza;
      gira(2);
     fin;
     si orientado-al-este entonces
      inicio
       mientras algun-zumbador-en-la-mochila hacer
        inicio
         deja-zumbador;
         avanza;
         gira(2);
        fin;
       mientras junto-a-zumbador hacer
        coge-zumbador;
       avanza;
       gira(2);
       mientras junto-a-zumbador hacer
        inicio
         coge-zumbador;
         avanza;
         gira(2);
         deja-zumbador;
         avanza;
         gira(2);
        fin;
       avanza;
      fin
      sino
       inicio
        mientras algun-zumbador-en-la-mochila hacer
         inicio
          avanza;
          deja-zumbador;
          gira(2);
         fin;
        avanza;
        mientras junto-a-zumbador hacer
         coge-zumbador;
        gira(2);
        avanza;
       fin;

        apagate;
    termina-ejecucion
finalizar-programa
