iniciar-programa

    define-nueva-instruccion norte como inicio
        mientras no-orientado-al-norte hacer inicio
             gira-izquierda;
        fin;
    fin;

    define-nueva-instruccion sur como inicio
        mientras no-orientado-al-sur hacer inicio
             gira-izquierda;
        fin;
    fin;

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

    define-nueva-instruccion oeste como inicio
        mientras no-orientado-al-oeste hacer inicio
             gira-izquierda;
        fin;
    fin;

        define-nueva-instruccion come como inicio
            mientras junto-a-zumbador hacer inicio
                coge-zumbador;
            fin;
        fin;


        define-nueva-instruccion atender como inicio
            mientras junto-a-zumbador y algun-zumbador-en-la-mochila hacer inicio
                si junto-a-zumbador entonces inicio
                    coge-zumbador;
                fin;
                    norte;
                    avanza;
                    repetir 2 veces inicio
                        si algun-zumbador-en-la-mochila entonces inicio
                            deja-zumbador;
                         fin;
                    fin;
                    sur;
                    avanza;
             fin;
                 este;
                 si frente-libre entonces inicio
                     avanza;
                 fin;
         fin;

         define-nueva-instruccion ir11 como inicio
             sur;
             mientras frente-libre hacer inicio
                 avanza;
            fin;
                oeste;
            mientras frente-libre hacer inicio
                avanza;
            fin;
                este;
          fin;

          define-nueva-instruccion regresa como inicio
              oeste;
              mientras frente-libre hacer inicio
                  avanza;
              fin;
         fin;

         define-nueva-instruccion vaciar como inicio
             mientras junto-a-zumbador hacer inicio
                 avanza;
             fin;
             mientras algun-zumbador-en-la-mochila hacer inicio
                 deja-zumbador;
             fin;
         fin;

          define-nueva-instruccion pasar como inicio
              mientras no-junto-a-zumbador y frente-libre hacer inicio
                  avanza;
              fin;

              mientras frente-libre hacer inicio
                  si junto-a-zumbador entonces inicio
                  come;
                  regresa;
                  este;
                  vaciar;
                  mientras junto-a-zumbador y frente-libre hacer inicio
                      avanza;
                  fin;
                  mientras no-junto-a-zumbador y frente-libre hacer inicio
                      avanza;
                 fin;
                 fin sino inicio
                     apagate;
                 fin;
             fin;
             si junto-a-zumbador entonces inicio
                 come;
                 regresa;
                 este;
                 vaciar;
             fin;
         fin;




    inicia-ejecucion
         si junto-a-zumbador y algun-zumbador-en-la-mochila entonces inicio
             mientras algun-zumbador-en-la-mochila y junto-a-zumbador hacer inicio
                 atender;
             fin;
             ir11;
             pasar;

         fin;

        apagate;
    termina-ejecucion
finalizar-programa
