iniciar-programa
    define-nueva-instruccion eseo como inicio
    si izquierda-bloqueada entonces inicio
      si frente-libre entonces inicio
      avanza;
      eseo;
      deja-zumbador;
      fin;
      fin
      sino inicio
      si frente-bloqueado entonces inicio
      gira-izquierda;
      avanza;
      eseo;
      deja-zumbador;
      fin
        sino inicio
        repetir 2 veces gira-izquierda;
        si frente-bloqueado entonces inicio
        repetir 2 veces gira-izquierda;
        avanza;
        eseo;
        deja-zumbador;
        fin
        sino inicio
        mientras no-junto-a-zumbador hacer inicio
        mientras frente-libre y no-junto-a-zumbador hacer avanza;
        si no-junto-a-zumbador entonces inicio
        repetir 3 veces gira-izquierda;
        fin;
        fin;
        fin;
        fin;
        fin;
     fin;




     define-nueva-instruccion sur como inicio
    si derecha-bloqueada entonces inicio
      si frente-libre entonces inicio
      avanza;
      sur;
      si junto-a-zumbador entonces coge-zumbador;
      fin;
      fin
      sino inicio
      si frente-bloqueado entonces inicio
      repetir 3 veces gira-izquierda;
      avanza;
      sur;
      si junto-a-zumbador entonces coge-zumbador;
      fin
        sino inicio
        repetir 2 veces gira-izquierda;
        si frente-bloqueado entonces inicio
        repetir 2 veces gira-izquierda;
        avanza;
        sur;
        si junto-a-zumbador entonces coge-zumbador;
        fin
        sino inicio
        mientras no-junto-a-zumbador hacer inicio
        mientras frente-libre y no-junto-a-zumbador hacer avanza;
        si no-junto-a-zumbador entonces inicio
        gira-izquierda;
        fin;
        fin;
        fin;
        fin;
        fin;
     fin;

    define-nueva-instruccion buena1 como inicio
    mientras junto-a-zumbador hacer inicio
    si izquierda-bloqueada entonces inicio
      si frente-libre entonces inicio
      avanza;
      deja-zumbador;

      fin;
      fin
      sino inicio
      si frente-bloqueado entonces inicio
      gira-izquierda;
      avanza;
      deja-zumbador;

      fin
        sino inicio
        repetir 2 veces gira-izquierda;
        si frente-bloqueado entonces inicio
        repetir 2 veces gira-izquierda;
        avanza;
        deja-zumbador;

        fin
        sino inicio
        repetir 3 veces gira-izquierda;
        avanza;
        si junto-a-zumbador entonces apagate;
        si frente-libre entonces inicio

        mientras frente-libre y no-junto-a-zumbador hacer inicio

        deja-zumbador;
        avanza;
        si junto-a-zumbador entonces apagate;
        fin;
        repetir 3 veces gira-izquierda;

        fin
        sino inicio
        repetir 3 veces gira-izquierda;
        fin;
        fin;
        fin;
        fin;
        fin;
     fin;

    define-nueva-instruccion buena2 como inicio
    mientras junto-a-zumbador hacer inicio
    si derecha-bloqueada entonces inicio
      si frente-libre entonces inicio
      avanza;
      deja-zumbador;

      fin;
      fin
      sino inicio
      si frente-bloqueado entonces inicio
      repetir 3 veces gira-izquierda;
      avanza;
      deja-zumbador;

      fin
        sino inicio
        repetir 2 veces gira-izquierda;
        si frente-bloqueado entonces inicio
        repetir 2 veces gira-izquierda;
        avanza;
        deja-zumbador;

        fin
        sino inicio
        gira-izquierda;
        avanza;
        si junto-a-zumbador entonces apagate;
        si frente-libre entonces inicio

        mientras frente-libre y no-junto-a-zumbador hacer inicio

        deja-zumbador;
        avanza;
        si junto-a-zumbador entonces apagate;
        fin;
        repetir 3 veces gira-izquierda;

        fin
        sino inicio
        repetir 3 veces gira-izquierda;
        fin;
        fin;
        fin;
        fin;
        fin;
     fin;



    inicia-ejecucion
        si junto-a-zumbador entonces apagate;

          mientras no-orientado-al-oeste hacer gira-izquierda;
          deja-zumbador;
          si frente-libre entonces inicio
          mientras frente-libre hacer avanza;
            si derecha-libre y frente-bloqueado entonces inicio
            repetir 2 veces gira-izquierda;
            mientras no-junto-a-zumbador hacer avanza;
            fin
              sino inicio
              si izquierda-libre y frente-bloqueado entonces inicio
              repetir 2 veces gira-izquierda;
              mientras no-junto-a-zumbador hacer avanza;
              repetir 2 veces gira-izquierda;
              fin;
              fin;
            fin
            sino inicio
            gira-izquierda;
            mientras frente-libre hacer avanza;
              si frente-bloqueado y izquierda-libre entonces inicio
              repetir 2 veces gira-izquierda;
              mientras no-junto-a-zumbador hacer avanza;
              repetir 2 veces gira-izquierda;
              fin
              sino inicio
              si frente-bloqueado y derecha-libre entonces inicio
              repetir 2 veces gira-izquierda;
              mientras no-junto-a-zumbador  hacer avanza;
              fin;
              fin;
              fin;
              coge-zumbador;
              mientras no junto-a-zumbador hacer inicio
              deja-zumbador;
              eseo;
              coge-zumbador;
              sur;
                si no-junto-a-zumbador entonces inicio
                deja-zumbador;
                buena1;
                fin
                sino inicio
                mientras junto-a-zumbador hacer coge-zumbador;
                deja-zumbador;
                repetir 2 veces gira-izquierda;
                buena2;
                fin;
              fin;


          apagate;
    termina-ejecucion
finalizar-programa
