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

     define-nueva-instruccion recursion como
         inicio
             si frente-libre y no-junto-a-zumbador entonces
                 inicio


                             avanza;
                             recursion;
                             avanza;
                         fin
                     sino
                         inicio
                             si frente-bloqueado y no-junto-a-zumbador entonces
                                 inicio
                                     apagate;
                                 fin;
                             coge-zumbador;
                             mientras frente-libre hacer
                                 inicio
                                     avanza;
                                 fin;
                            gira-izquierda;
                            mientras derecha-bloqueada hacer
                                inicio
                                    avanza;
                                fin;
                            derecha;
                            avanza;
                            derecha;
                            mientras frente-libre hacer
                                inicio
                                    avanza;
                                fin;
                            gira-izquierda;
                          fin;



              fin;

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

     define-nueva-instruccion regresar como
         inicio
             gira-izquierda;
             gira-izquierda;
             mientras frente-libre hacer
                 inicio
                     avanza;
                 fin;
             derecha;
             mientras izquierda-bloqueada hacer
                 inicio
                     avanza;
                 fin;
             gira-izquierda;
             avanza;
             gira-izquierda;
             mientras frente-libre hacer
                 inicio
                     avanza;
                  fin;
              derecha;
              mientras frente-libre hacer
                  inicio
                      avanza;
                  fin;
               gira-izquierda;
               gira-izquierda;
          fin;


 inicia-ejecucion
     orientar;
     mientras algun-zumbador-en-la-mochila hacer
         inicio

                     recursion;
                     deja-zumbador;
                     regresar;
         fin;


        apagate;
    termina-ejecucion
finalizar-programa
