iniciar-programa

define-nueva-instruccion derecha como inicio
   repetir 3 veces inicio
      gira-izquierda;
     fin;
  fin;

define-nueva-instruccion deposita como inicio
  repetir 5 veces inicio
      deja-zumbador;
    fin;
  fin;

define-nueva-instruccion checar como inicio
   coge-zumbador;
   si junto-a-zumbador entonces inicio
      deja-zumbador;
         deposita;
       fin sino inicio
        deposita;
        si derecha-bloqueada y izquierda-bloqueada entonces inicio
         deposita;
           fin;
        apagate;
     fin;
  fin;

define-nueva-instruccion revisa2 como inicio
    si izquierda-libre entonces inicio
       si junto-a-zumbador entonces inicio
          checar;
         fin sino inicio
           deposita;
         fin;
         gira-izquierda;
            avanza;
      fin;

   fin;

define-nueva-instruccion revisa1 como inicio
    si izquierda-bloqueada entonces inicio
      si junto-a-zumbador entonces inicio
        checar;
        fin sino inicio
         deposita;
        fin;
        derecha;
        fin sino inicio
          revisa2;
      fin;

  fin;

    inicia-ejecucion
        deja-zumbador;
        si frente-bloqueado y derecha-libre entonces inicio
           derecha;
               fin;
       si frente-bloqueado y derecha-bloqueada  entonces inicio
              repetir 19 veces  inicio
                  deja-zumbador;
                fin;
                apagate;
                fin;
    mientras algun-zumbador-en-la-mochila hacer inicio
         si frente-libre y izquierda-bloqueada entonces inicio
                 avanza;
               fin sino inicio
                  si frente-bloqueado entonces inicio
                        revisa1;
                    fin sino inicio
                        revisa2;
                   fin;
               fin;
         fin;
        apagate;
    termina-ejecucion
finalizar-programa
