iniciar-programa
    define-nueva-instruccion traer como inicio
          mientras junto-a-zumbador hacer
          inicio
          si frente-libre entonces
          inicio
          avanza;
          fin;
          si frente-bloqueado entonces
          inicio
          apagate;
          fin;
          fin;
          mientras no-junto-a-zumbador hacer
          inicio
          si frente-bloqueado entonces
          inicio
          apagate;
          fin;
          avanza;
          fin;
          si  junto-a-zumbador entonces
          inicio
              mientras junto-a-zumbador hacer
              inicio
              coge-zumbador;
              fin;
          fin;
          gira-izquierda;
          gira-izquierda;
          mientras no-junto-a-zumbador hacer
          inicio
          avanza;
          fin;
          si junto-a-zumbador entonces
          inicio
          gira-izquierda;
          gira-izquierda;
          avanza;
          mientras algun-zumbador-en-la-mochila hacer
          inicio
          deja-zumbador;
          fin;
          gira-izquierda;
          gira-izquierda;
          fin;
    fin;


    define-nueva-instruccion correr como inicio
    mientras no-junto-a-zumbador hacer
       inicio
       mientras no-junto-a-zumbador  hacer
       inicio
       si frente-libre entonces
       inicio
       avanza;
       fin;
       si frente-bloqueado entonces
       inicio
       apagate;
       fin;
       fin;
       si junto-a-zumbador entonces
       inicio
           mientras junto-a-zumbador hacer
           inicio
           coge-zumbador
           fin;
           gira-izquierda;
           gira-izquierda;
           avanza;
           mientras algun-zumbador-en-la-mochila hacer
           inicio
           deja-zumbador;
           fin;
           gira-izquierda;
           gira-izquierda;
           avanza;
       fin;
       si no-junto-a-zumbador entonces
       inicio
       gira-izquierda;
       gira-izquierda;
       mientras frente-libre hacer
       inicio
       avanza;
       fin;
       gira-izquierda;
       gira-izquierda;
       fin;
       fin;
    fin;

    define-nueva-instruccion despachar como inicio
    si junto-a-zumbador entonces
    inicio
     gira-izquierda;
     avanza;
     si no-junto-a-zumbador entonces
     inicio
         gira-izquierda;
         gira-izquierda;
         avanza;
         gira-izquierda;
         mientras junto-a-zumbador hacer
         inicio
         traer;
         gira-izquierda;
         gira-izquierda;
         fin;
         apagate;
     fin;
     si junto-a-zumbador entonces
     inicio
     coge-zumbador;
     fin;

     gira-izquierda;
     gira-izquierda;
     avanza;
     gira-izquierda;
     coge-zumbador;
     avanza;
     gira-izquierda;
     avanza;
     mientras algun-zumbador-en-la-mochila hacer
     inicio
     deja-zumbador;
     fin;
     gira-izquierda;
     avanza;
     gira-izquierda;
     avanza;
     gira-izquierda;
    fin;
    si no-junto-a-zumbador entonces
    inicio
        correr;
    fin;
    fin;

    inicia-ejecucion

    gira-izquierda;
    avanza;
    mientras algun-zumbador-en-la-mochila hacer
    inicio
    deja-zumbador;
    fin;
    gira-izquierda;
    gira-izquierda;
    avanza;
    gira-izquierda;
    mientras frente-libre hacer
    inicio
    despachar;
    fin;

    apagate;
    termina-ejecucion
finalizar-programa
