iniciar-programa
define-nueva-instruccion busca como
inicio
   si frente-libre entonces
   inicio
      avanza;
      si no junto-a-zumbador entonces
      inicio
         gira-izquierda;
         gira-izquierda;
         avanza;
         repetir 2 veces
         gira-izquierda;
      fin
   fin;
   si no-junto-a-zumbador entonces
      inicio
         gira-izquierda;
         si frente-libre entonces
         inicio
            avanza;
            si no junto-a-zumbador entonces
            inicio
               gira-izquierda;
               gira-izquierda;
               avanza;
               gira-izquierda;
            fin;
         fin
         sino
            repetir 3 veces
              gira-izquierda;
         si no-junto-a-zumbador entonces
         inicio
            repetir 3 veces
               gira-izquierda;
            si frente-libre entonces
            inicio
               avanza;
               si no junto-a-zumbador entonces
               inicio
                  gira-izquierda;
                  gira-izquierda;
                  avanza;
                  repetir 3 veces
                     gira-izquierda;
                fin;
            fin;
            fin;
      fin;
   fin;
   define-nueva-instruccion corre1(n) como
   inicio
      si junto-a-zumbador entonces
      inicio
         coge-zumbador;
         si junto-a-zumbador entonces
         inicio
            mientras junto-a-zumbador hacer
               coge-zumbador;
            busca;
            corre1(sucede(n))
         fin
         sino
         inicio
           busca;
           corre1(n);
         fin;
      fin
      sino
         repetir n veces
           deja-zumbador;
   fin;
   define-nueva-instruccion corre(n) como
   inicio
      si junto-a-zumbador entonces
      inicio
         coge-zumbador;
         si junto-a-zumbador entonces
         inicio
            mientras junto-a-zumbador hacer
               coge-zumbador;
            busca;
            si no si-es-cero(n) entonces
              corre(precede(n))
            sino
              corre1(1);
         fin
         sino
         inicio
           busca;
           corre(n);
         fin;
      fin
      sino
      inicio
         mientras no-orientado-al-este hacer
            gira-izquierda;
         avanza;
         repetir 5 veces
            deja-zumbador;
       fin;
   fin;
   define-nueva-instruccion coge(n) como
   inicio
      si junto-a-zumbador entonces
      inicio
         coge-zumbador;
         coge(sucede(n));
      fin
      sino
      inicio
        avanza;
         corre(n);
      fin;
   fin;
    inicia-ejecucion
        coge(0);
        apagate;
    termina-ejecucion
finalizar-programa
