iniciar-programa
define-nueva-instruccion d como
  inicio
   repetir 3 veces gira-izquierda;
  fin;
define-nueva-instruccion v como
  inicio
     repetir 2 veces gira-izquierda;
  fin;

  define-nueva-instruccion checa como
     inicio
        repetir 4 veces
          inicio
             si frente-libre entonces
               inicio
                  avanza;
                   si junto-a-zumbador entonces
                     inicio
                       v;
                       si frente-libre entonces avanza;
                       v;
                       deja-zumbador;
                     fin
                   sino
                     inicio
                       v;
                       si frente-libre entonces avanza;
                       v;
                     fin;
                 fin;
              gira-izquierda;

          fin;
    fin;
 define-nueva-instruccion pastel como
   inicio
      repetir 4 veces
        inicio
           si frente-libre entonces
              inicio
                avanza;
                 si junto-a-zumbador entonces
                   inicio
                     coge-zumbador;
                     si junto-a-zumbador entonces
                       deja-zumbador
                     sino
                      inicio
                        deja-zumbador;
                        checa;
                        pastel;
                      fin;
                   fin;
                  v;
                  si frente-libre entonces avanza;
                  v;

              fin;
               gira-izquierda;
       fin;

   fin;
   define-nueva-instruccion revisa como
      inicio
        repetir 5 veces
          inicio
           si junto-a-zumbador entonces
              coge-zumbador
           sino
            repetir 6 veces deja-zumbador;
         fin;
        si junto-a-zumbador entonces
          inicio
             mientras junto-a-zumbador hacer coge-zumbador;
             deja-zumbador;
           fin;


      fin;
    define-nueva-instruccion arriba como
      inicio
         mientras no-orientado-al-este hacer gira-izquierda;
         mientras frente-libre hacer avanza;
         gira-izquierda;
         mientras frente-libre hacer avanza;                
         gira-izquierda;

      fin;
   define-nueva-instruccion recorre como
     inicio
       mientras no-junto-a-zumbador y frente-libre hacer avanza;
         si junto-a-zumbador entonces
           revisa;
         si frente-libre entonces avanza;
         si junto-a-zumbador entonces
           revisa;
         si frente-bloqueado y izquierda-libre entonces
            inicio
              v;
              mientras frente-libre hacer avanza;
              d;
              si frente-libre entonces avanza;
             d;
            fin;

     fin;
    inicia-ejecucion
      pastel;
      arriba;
      mientras no(frente-bloqueado y izquierda-bloqueada) hacer
        recorre;
        apagate;
    termina-ejecucion
finalizar-programa
