iniciar-programa
    define-nueva-instruccion este como inicio
        mientras no orientado-al-este 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 derecha como inicio
        repetir 3 veces gira-izquierda;
    fin;
    define-nueva-instruccion orientarse como inicio
        sur;
        mientras frente-libre hacer inicio
            avanza;
        fin;
        si izquierda-bloqueada y frente-bloqueado entonces inicio
            derecha;
            mientras frente-libre hacer inicio
                avanza;
            fin;
        fin sino inicio
        si derecha-bloqueada entonces inicio
            gira-izquierda;
        fin sino inicio
        si izquierda-libre y derecha-libre entonces derecha;
        mientras frente-libre hacer inicio
            avanza;
        fin;
    fin;
    fin;
    fin;
    define-nueva-instruccion recoge como inicio
        si junto-a-zumbador entonces inicio coge-zumbador;
        fin sino inicio
            sal-de-instruccion;
        fin;
        si junto-a-zumbador entonces inicio coge-zumbador;
        fin sino inicio
            deja-zumbador;
            sal-de-instruccion;
        fin;
        si junto-a-zumbador entonces inicio coge-zumbador;
            repetir 3 veces deja-zumbador;
            apagate;
        fin;
        deja-zumbador;
        deja-zumbador;
    fin;
    define-nueva-instruccion camina como inicio
          si junto-a-zumbador entonces inicio recoge;
          fin;
          mientras frente-libre hacer inicio
              avanza;
              si junto-a-zumbador entonces inicio
                recoge;
               fin;
              si frente-bloqueado y orientado-al-este entonces inicio
                  gira-izquierda;
                  avanza;
                  gira-izquierda;
                  si junto-a-zumbador entonces inicio recoge;
                  fin;
              fin sino inicio
                  si frente-bloqueado y orientado-al-oeste entonces inicio
                      derecha;
                      avanza;
                      derecha;
                      si junto-a-zumbador entonces inicio recoge;
                      fin;
                  fin;
              fin;
          fin;
    fin;

    inicia-ejecucion
    orientarse;
    este;
    camina;
    si frente-bloqueado entonces inicio
        gira-izquierda;
        si junto-a-zumbador entonces inicio recoge;
        mientras frente-libre hacer inicio avanza;
        si junto-a-zumbador entonces inicio recoge;
        fin;
        fin;
    fin;
    fin;
        apagate;
    termina-ejecucion
finalizar-programa
