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

    define-nueva-instruccion gira-Derecha como inicio
        gira-izquierda;
        gira-izquierda;
        gira-izquierda;
    fin;

    define-nueva-instruccion mide como inicio
      si frente-libre entonces inicio
        avanza;
        mide;
        deja-zumbador;
      fin
      sino si frente-bloqueado entonces inicio
       media-vuelta;
       mientras frente-libre hacer avanza;
       media-vuelta;
       avanza;
       fin;
       fin;
     define-nueva-instruccion pasa como inicio
      si junto-a-zumbador entonces inicio
       coge-zumbador;
       pasa;
       deja-zumbador;
       fin
       sino inicio
       avanza;
       fin;
       fin;



      define-nueva-instruccion pasa1 como inicio
      si junto-a-zumbador entonces inicio
       coge-zumbador;
       pasa1;
       deja-zumbador;
       fin
       sino inicio
       media-vuelta;
       mientras frente-libre hacer avanza;
       gira-derecha; avanza;
       gira-derecha;
       avanza;
       fin;
       fin;
      define-nueva-instruccion agrega1(n) como inicio
       si junto-a-zumbador entonces inicio
        coge-zumbador;
        agrega1(sucede(n));
        fin
        sino inicio
         repetir n veces deja-zumbador;
         media-vuelta;
         avanza;
         repetir n veces deja-zumbador;
         gira-izquierda; avanza; gira-izquierda; avanza;
         sal-de-instruccion;
         fin;
      fin;

      define-nueva-instruccion agrega2(n) como inicio
       si junto-a-zumbador entonces inicio
        coge-zumbador;
        agrega2(sucede(n));
        fin
        sino inicio
         repetir n veces deja-zumbador;
         media-vuelta;
         avanza;
          repetir n veces
         si junto-a-zumbador entonces inicio
          coge-zumbador;
          fin;
          gira-derecha; avanza; media-vuelta;
          sal-de-instruccion;
         fin;
      fin;

      define-nueva-instruccion compara(n) como inicio
      si orientado-al-norte entonces inicio
       agrega1(0);
       agrega2(0);
      fin;

       si junto-a-zumbador entonces inicio
        coge-zumbador;
        compara(sucede(n));
        fin
        sino inicio
          repetir n veces deja-zumbador;
          avanza;
          repetir n veces
        si junto-a-zumbador entonces inicio
         coge-zumbador;
         fin;
        fin;
       si junto-a-zumbador entonces inicio
        repetir n veces deja-zumbador;
        media-vuelta;
        avanza;
        gira-derecha;
        avanza;
        compara(0);
        fin;

      fin;



  inicia-ejecucion
   pasa;
   media-vuelta;
   avanza;
   gira-izquierda;
   mientras no junto-a-zumbador y frente-libre hacer avanza;
   si junto-a-zumbador entonces pasa1;

    media-vuelta;
    avanza;
    gira-izquierda; avanza; gira-izquierda;
    mide;
    deja-zumbador;
    media-vuelta;
    avanza;
    gira-derecha;
    avanza;
    compara(0);

        apagate;
    termina-ejecucion
finalizar-programa
