iniciar-programa
define-nueva-instruccion mira-oeste como
inicio
    mientras no-orientado-al-oeste hacer
       gira-izquierda;
fin;
define-nueva-instruccion mira-sur como
inicio
    mientras no-orientado-al-sur hacer
       gira-izquierda;
fin;
define-nueva-instruccion mira-este como
inicio
    mientras no-orientado-al-este hacer
       gira-izquierda;
fin;
define-nueva-instruccion gira-derecha como
inicio
    repetir 3 veces
       gira-izquierda;
fin;
define-nueva-instruccion paso-atras como
inicio
    repetir 2 veces
       gira-izquierda;
    avanza;
    repetir 2 veces
       gira-izquierda;
fin;
define-nueva-instruccion revisa como
inicio
    mientras algun-zumbador-en-la-mochila y junto-a-zumbador hacer
    inicio
       gira-izquierda;
       avanza;
       mientras algun-zumbador-en-la-mochila hacer
          deja-zumbador;
         repetir 2 veces
             gira-izquierda;
          mientras junto-a-zumbador hacer
          inicio
              coge-zumbador;
              avanza;
              coge-zumbador;
              si junto-a-zumbador entonces
              inicio
                 paso-atras;
              fin
              sino
              inicio
                  mientras junto-a-zumbador hacer
                     coge-zumbador;
                 repetir 3 veces paso-atras;
                 mientras algun-zumbador-en-la-mochila hacer
                      deja-zumbador;
                 avanza;
                 avanza;
                 mientras junto-a-zumbador hacer
                    coge-zumbador;
                 paso-atras;

              fin;
           fin;
           si frente-libre entonces
              inicio
                 avanza;
                 si frente-bloqueado entonces
                 inicio
                    repetir 2 veces
                       paso-atras;
                    mientras algun-zumbador-en-la-mochila hacer
                       deja-zumbador;
                 fin;
              fin;
        mira-sur;
        mientras frente-libre hacer
          avanza;
       mira-este;
       si frente-libre entonces
         avanza;
    fin;
fin;
define-nueva-instruccion regresa como
inicio
    mira-oeste;
    mientras no-junto-a-zumbador y frente-libre hacer
       avanza;
    si junto-a-zumbador entonces
        paso-atras;
fin;
define-nueva-instruccion nuevacola como
inicio
    mientras frente-libre hacer
    inicio
       si junto-a-zumbador entonces
       inicio
           mientras junto-a-zumbador hacer
              coge-zumbador;
           regresa;
           mientras algun-zumbador-en-la-mochila hacer
              deja-zumbador;
           mira-este;
           mientras no-junto-a-zumbador y frente-libre hacer
              avanza;
       fin;
       avanza;
    fin;
    si junto-a-zumbador entonces
    inicio
       mientras junto-a-zumbador hacer
          coge-zumbador;
       regresa;
       mientras algun-zumbador-en-la-mochila hacer
          deja-zumbador;
    fin;
fin;

    inicia-ejecucion
    revisa;
    mira-oeste;
    mientras frente-libre hacer
      avanza;
    mira-este;
    nuevacola;
    mira-oeste;
    mientras frente-libre hacer
       avanza;
        apagate;
    termina-ejecucion
finalizar-programa
