iniciar-programa
 define-nueva-instruccion gira(n) como
   inicio
      repetir n veces
         gira-izquierda;
   fin;
   define-nueva-instruccion trae(n) como
   inicio
      si junto-a-zumbador entonces
      inicio
         coge-zumbador;
         trae(sucede(n));
      fin
      sino
      inicio
         repetir n veces
            deja-zumbador;
         gira(2);
         avanza;
         repetir n veces
            deja-zumbador;
         gira(2);
      fin;
   fin;
   define-nueva-instruccion laquesigue como
   inicio
      gira(2);
      mientras frente-libre hacer
         avanza;
      gira(2);
      mientras frente-libre y derecha-bloqueada hacer
         avanza;
      si derecha-libre entonces
      inicio
         gira(3);
         avanza;
         gira(3);
         mientras frente-libre hacer
            avanza;
         gira(2);
          mientras junto-a-zumbador hacer
       coge-zumbador;
          repetir 2 veces
          inicio
              gira(1);
              si frente-libre entonces
              inicio
                avanza;
                trae(0);
              fin;
          fin;
          gira(2);
      fin
      sino
         gira(1);
   fin;
   define-nueva-instruccion revisa como
   inicio
       mientras frente-libre hacer
       inicio
          avanza;
           mientras junto-a-zumbador hacer
               coge-zumbador;
          repetir 2 veces
          inicio
              gira(1);
              si frente-libre entonces
              inicio
                avanza;
                trae(0);
              fin;
          fin;
          gira(2);
       fin;
   fin;

inicia-ejecucion
    mientras no-orientado-al-este hacer
       gira-izquierda;
     mientras junto-a-zumbador hacer
       coge-zumbador;
    deja-zumbador;
    mientras no orientado-al-norte hacer
    inicio
       revisa;
       laquesigue;
     fin;
termina-ejecucion
finalizar-programa
