iniciar-programa
    define-nueva-instruccion corre como inicio
    si no-junto-a-zumbador entonces inicio
       gira-izquierda;
       gira-izquierda;
       si frente-libre entonces inicio
       avanza;
       fin;
       gira-izquierda;
        si frente-libre entonces inicio
       avanza;
       fin;
     fin;
    fin;
    define-nueva-instruccion camina como inicio
      si no-junto-a-zumbador entonces inicio
       gira-izquierda;
       gira-izquierda;
        si frente-libre entonces inicio
           avanza;
           Si frente-libre entonces inicio
                avanza;
           fin;
       fin;
      fin;
     fin;
    define-nueva-instruccion linea como inicio
      mientras junto-a-zumbador hacer inicio
           si frente-libre entonces inicio
               avanza;
               
       mientras no-junto-a-zumbador hacer inicio
            corre;
            camina;
                si no-junto-a-zumbador entonces inicio
              gira-izquierda;
              gira-izquierda;
              avanza;
              gira-izquierda;
              gira-izquierda;
              gira-izquierda;
              apagate;
          fin;
         FIN;
               si derecha-bloqueada y frente-bloqueado entonces inicio
                   gira-izquierda;
               fin;
               si izquierda-bloqueada y frente-bloqueado entonces inicio
                   gira-izquierda;
                   gira-izquierda;
                   gira-izquierda;
               fin;
               si frente-bloqueado entonces inicio
                   gira-izquierda;
                   Si frente-libre entonces inicio
                           avanza;
                   fin;
                   si junto-a-zumbador entonces inicio
                       linea;
                   FIN SINO INICIO
                       GIRA-IZQUIERDA;
                       GIRA-IZQUIERDA;
                       AVANZA;
                  FIN;
               fin;
           fin;


        linea;
     fin;
   fin;
    inicia-ejecucion
        linea;
        apagate;
    termina-ejecucion
finalizar-programa
