iniciar-programa
define-nueva-instruccion revisa como
 inicio

         si frente-libre entonces
          inicio
            avanza;
            si no-junto-a-zumbador entonces
               inicio
                  repetir 2 veces gira-izquierda;
                  si frente-libre entonces avanza;
                  repetir 3 veces gira-izquierda;
               fin;
           fin
          sino
           gira-izquierda;
   fin;
define-nueva-instruccion busca como
 inicio
 si frente-libre entonces
  inicio
  avanza;
   si no-junto-a-zumbador entonces
    inicio
      repetir 2 veces gira-izquierda;
      si frente-libre entonces avanza;
      repetir 2 veces gira-izquierda;
      gira-izquierda;
    si frente-libre entonces
     inicio
       avanza;
        si no-junto-a-zumbador entonces
         inicio
           repetir 2 veces gira-izquierda;
           si frente-libre entonces avanza;
           revisa;
          fin
      fin
          sino
           inicio
           repetir 2 veces gira-izquierda;
           revisa;
           fin;
      fin;
   fin

  sino
   inicio
   gira-izquierda;
    si frente-libre entonces
     inicio
       avanza;
        si no-junto-a-zumbador entonces
         inicio
          repetir 2 veces gira-izquierda;
          si frente-libre entonces avanza;
          revisa;
         fin;
       fin
        sino
          inicio
           repetir 2 veces gira-izquierda;
           revisa;
          fin;
       fin;


 fin;
 define-nueva-instruccion recorre2 (n) como
  inicio
   busca;

   si junto-a-zumbador entonces
      inicio
       coge-zumbador;

            si junto-a-zumbador  entonces
          inicio
             mientras junto-a-zumbador hacer coge-zumbador;
             recorre2(sucede(n));

          fin;

          recorre2(n);
         fin;


       si no-junto-a-zumbador entonces
         inicio
           si si-es-cero (n) entonces
            inicio
             mientras no-orientado-al-este hacer
             gira-izquierda;
             si frente-libre entonces avanza;
             repetir 5 veces deja-zumbador;
             apagate;
            fin
            sino
           repetir n veces deja-zumbador;
           apagate;
           fin;
     fin;


define-nueva-instruccion recorre (n) como
 inicio
  si junto-a-zumbador entonces
    inicio
     coge-zumbador;
     recorre(sucede(n));
    fin;
   busca;



       si junto-a-zumbador y no si-es-cero (n) entonces
         inicio
         coge-zumbador;
         si junto-a-zumbador entonces
          inicio
            mientras junto-a-zumbador hacer coge-zumbador;
            recorre(precede (n));
           fin;
           recorre(n);
         fin;
            si junto-a-zumbador y si-es-cero (n) entonces
          inicio
             coge-zumbador;
             si junto-a-zumbador entonces
              inicio
               mientras junto-a-zumbador hacer coge-zumbador;
             recorre2(1);
              fin;
              recorre2(0);

          fin;




       si no-junto-a-zumbador entonces
         inicio
         si  si-es-cero (n) o no si-es-cero(n) entonces
           inicio
            mientras no-orientado-al-este hacer gira-izquierda;
             si frente-libre entonces avanza;
             repetir 5 veces deja-zumbador;
             apagate;
           fin;


          fin;

    fin;


    inicia-ejecucion
     recorre(0);
        apagate;
    termina-ejecucion
finalizar-programa
