iniciar-programa
    define-nueva-instruccion gira-derecha como inicio
        gira-izquierda;
        gira-izquierda;
        gira-izquierda;
    fin;
    define-nueva-instruccion baja como inicio
       si frente-libre entonces inicio
           avanza;
       fin sino inicio
           si frente-bloqueado entonces inicio
               gira-izquierda;
               mientras derecha-bloqueada hacer inicio
                   avanza;
               fin;
               gira-derecha;
               avanza;
           fin;
       fin;
   fin;
    define-nueva-instruccion pasa como inicio
        si derecha-bloqueada y frente-libre entonces inicio
            avanza;
            pasa;
            baja;
        fin sino inicio
            si frente-bloqueado y derecha-bloqueada entonces inicio
                gira-izquierda;
                mientras derecha-bloqueada hacer inicio
                    avanza;
                fin;
                gira-derecha;
                avanza;
                pasa;
                baja;
             fin sino inicio
                  si derecha-libre entonces inicio
                      gira-derecha;
                      avanza;
                      si derecha-bloqueada entonces inicio
                          mientras frente-libre y derecha-bloqueada hacer inicio
                              avanza;
                          fin;
                          gira-izquierda;
                          si frente-libre entonces inicio
                              avanza;
                          fin sino inicio
                              gira-izquierda;
                              mientras derecha-bloqueada hacer inicio
                                  avanza;
                              fin;
                              gira-derecha;
                              avanza;
                          fin;
                          pasa;
                          baja;
                      fin sino inicio
                          gira-derecha;
                      fin;
                  fin;
               fin;
           fin;
       fin;
    inicia-ejecucion
        gira-izquierda;
        pasa;
        si derecha-libre entonces inicio
            gira-derecha;
            mientras frente-libre hacer inicio
                avanza;
            fin;
            deja-zumbador;
        fin sino inicio
            deja-zumbador;
        fin;
        apagate;
    termina-ejecucion
finalizar-programa
