iniciar-programa
    define-nueva-instruccion derecha como
        inicio
            gira-izquierda;
            gira-izquierda;
            gira-izquierda;
        fin;

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

    define-nueva-instruccion recoger como
        inicio
            mientras junto-a-zumbador hacer
                inicio
                    coge-zumbador;
                    avanza;
                fin;
            gira-izquierda;
            gira-izquierda;
            mientras frente-libre hacer
                inicio
                    avanza;
                fin;
          gira-izquierda;


          fin;

       define-nueva-instruccion cambiarfila como
        inicio
            si frente-libre entonces
                inicio
                    avanza;
                    gira-izquierda;
                 fin;
           fin;

           define-nueva-instruccion construir como
               inicio
                   mientras frente-libre hacer
                       inicio
                           deja-zumbador;
                           avanza;
                       fin;
                    deja-zumbador;
                fin;


            define-nueva-instruccion subir como
            inicio
                    si orientado-al-este entonces
                            inicio
                                gira-izquierda;
                                avanza;
                                gira-izquierda;
                                sal-de-instruccion;


                            fin;
                        si orientado-al-oeste entonces
                            inicio
                                derecha;
                                avanza;
                                derecha;

                  fin;
            fin;


    inicia-ejecucion
    norte;
    mientras frente-libre hacer
        inicio
            recoger;
            cambiarfila;
         fin;
     gira-izquierda;
     gira-izquierda;
    mientras algun-zumbador-en-la-mochila hacer
        inicio
            construir;
            subir;
        fin;

        apagate;
    termina-ejecucion
finalizar-programa
