iniciar-programa
define-nueva-instruccion hastaalla como
inicio
   mientras no-orientado-al-este hacer
      gira-izquierda;
   mientras frente-libre hacer
      avanza;
   repetir 3 veces
      gira-izquierda;
   mientras frente-libre hacer
      avanza;
   repetir 3 veces
     gira-izquierda;
fin;
define-nueva-instruccion revisa como
inicio
   mientras frente-libre hacer
   inicio
      mientras frente-libre y no junto-a-zumbador hacer
         avanza;
      si frente-libre entonces
      inicio
         repetir 3 veces
            gira-izquierda;
         mientras junto-a-zumbador hacer
           avanza;
         avanza;
         si junto-a-zumbador entonces
         inicio
            mientras junto-a-zumbador hacer
               avanza;
            avanza;
         fin;
         gira-izquierda;
         avanza;
         gira-izquierda;
         si junto-a-zumbador entonces
         inicio
            avanza;
            coge-zumbador;
            gira-izquierda;
            avanza;
            deja-zumbador;
            gira-izquierda;
            gira-izquierda;
            avanza;
            gira-izquierda;
         fin;
         mientras frente-libre hacer
            avanza;
         repetir 3 veces
            gira-izquierda;
      fin;
   fin;
fin;
define-nueva-instruccion rellena como
inicio
   mientras frente-libre hacer
   inicio
      mientras frente-libre y no junto-a-zumbador hacer
         avanza;
      si frente-libre entonces
      inicio
         gira-izquierda;
         mientras junto-a-zumbador hacer
           avanza;
         avanza;
         si junto-a-zumbador entonces
         inicio
            mientras junto-a-zumbador hacer
               avanza;
            gira-izquierda;
            gira-izquierda;
            avanza;
            coge-zumbador;
            avanza;
            mientras junto-a-zumbador hacer
               avanza;
            deja-zumbador;
         fin
         sino
         inicio
            gira-izquierda;
            gira-izquierda;
         fin;
         mientras frente-libre hacer
            avanza;
         gira-izquierda;
         avanza;
      fin;
   fin;
fin;
define-nueva-instruccion cuenta(n) como
inicio
   si algun-zumbador-en-la-mochila entonces
   inicio
      deja-zumbador;
      cuenta(sucede(n));
   fin
   sino
   inicio
      repetir n veces
         coge-zumbador;
      repetir n veces
      inicio
         hastaalla;
         revisa;
         gira-izquierda;
         gira-izquierda;
         rellena;
      fin;
   fin;
fin;
    inicia-ejecucion
       cuenta(0);
       gira-izquierda;
       gira-izquierda;
       mientras frente-libre hacer
          avanza;
       apagate;
    termina-ejecucion
finalizar-programa
