iniciar-programa
 define-nueva-instruccion mv como
  repetir 2 veces
   gira-izquierda;
 define-nueva-instruccion gd como
  repetir 3 veces
   gira-izquierda;
 define-nueva-instruccion compara(n) como
  inicio
   si junto-a-zumbador y no(si-es-cero(n)) entonces
    inicio
     coge-zumbador;
     compara(precede(n));
     deja-zumbador;
    fin
   sino
    inicio
     si junto-a-zumbador entonces
      inicio
       mientras junto-a-zumbador hacer
        coge-zumbador;
      fin;
    fin;
  fin;

 define-nueva-instruccion busca como
  inicio
   si no-junto-a-zumbador entonces
    inicio
     deja-zumbador;
     repetir 4 veces
      inicio
       si frente-libre entonces
        inicio
         avanza;
         busca;
         mv;
         avanza;
         mv;
        fin;
       gira-izquierda;
      fin;
    fin
   sino
    inicio
     coge-zumbador;
     si junto-a-zumbador entonces
      inicio
       coge-zumbador;
       si no-junto-a-zumbador entonces
        inicio
         repetir 901 veces
          deja-zumbador
        fin
       sino
        repetir 2 veces
         deja-zumbador;
      fin
     sino
      deja-zumbador;
    fin;
  fin;
 define-nueva-instruccion quita como
  inicio
   si junto-a-zumbador entonces
    inicio
     coge-zumbador;
      si junto-a-zumbador entonces
       inicio
        deja-zumbador;
       fin
      sino
       inicio
        repetir 4 veces
         inicio
          si frente-libre entonces
           inicio
            avanza;
            quita;
            mv;
            avanza;
            mv;
           fin;
          gira-izquierda;
         fin;
       fin;
    fin;
  fin;
 define-nueva-instruccion cuenta(n) como
  inicio
   si no-junto-a-zumbador entonces
    inicio
     repetir n veces
      deja-zumbador;
     gd;
     repetir 3 veces
      inicio
       si frente-libre entonces
        inicio
         avanza;
         cuenta(sucede(n));
         mv;
         avanza;
         mv;
        fin;
       gira-izquierda;
      fin;
     mientras junto-a-zumbador hacer
      coge-zumbador;
     mv;
    fin
   sino
    inicio
     compara(n);

    fin;
  fin;


    inicia-ejecucion
    busca;
    quita;
    cuenta(0);
        apagate;
    termina-ejecucion
finalizar-programa
