iniciar-programa
  define-nueva-instruccion mina(n) como inicio
         si junto-a-zumbador entonces  inicio
         si junto-a-zumbador entonces  coge-zumbador;
          mina(sucede(n));
          fin
          sino inicio
          si no si-es-cero (precede(precede(precede(precede(precede(precede(precede(precede(precede(n)))))))))) o  si-es-cero (precede(precede(precede(precede(precede(precede(precede(precede(precede(n)))))))))) entonces inicio
          repetir 9 veces  deja-zumbador;
          si frente-libre entonces inicio
          avanza;
          deja-zumbador;
          gira-izquierda;
          si frente-libre entonces inicio
          avanza;
          deja-zumbador;
             gira-izquierda;
                     si frente-libre entonces avanza;
                     deja-zumbador;
                             si frente-libre entonces inicio
                          avanza;
                     deja-zumbador;
                    gira-izquierda;

                     si frente-libre entonces avanza;
                     deja-zumbador;
                       si frente-libre entonces inicio
                       avanza;
                     deja-zumbador;


gira-izquierda;
                  repetir 2 veces inicio
                     si frente-libre entonces avanza;
                     deja-zumbador;
                  fin;
                 gira-izquierda;
                 si frente-libre entonces  avanza;
                  mientras no orientado-al-este hacer gira-izquierda;
si frente-libre  o frente-bloqueado entonces sal-de-instruccion;
  fin
   sino inicio
                  gira-izquierda;
                   si frente-libre entonces avanza;
                    si frente-libre entonces avanza;

                       fin;

 fin
      sino inicio
    gira-izquierda;
    si frente-libre entonces avanza;
    si frente-libre entonces  inicio
    avanza;
    deja-zumbador;
    gira-izquierda;
     si frente-libre entonces avanza;
     deja-zumbador;
     gira-izquierda;
      si frente-libre entonces avanza;
      mientras no orientado-al-este hacer gira-izquierda;
      fin
      sino inicio
      gira-izquierda;
      si frente-libre entonces avanza;
      fin;

fin;







                      fin

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

                gira-izquierda;
                  si frente-libre entonces avanza;
                  deja-zumbador;
                  gira-izquierda;
                  repetir 2 veces inicio
                     si frente-libre entonces avanza;
                     deja-zumbador;
                  fin;
                  gira-izquierda;
                  si frente-libre entonces avanza;
                   mientras no orientado-al-este hacer gira-izquierda ;
                   fin
                   sino inicio
                   gira-izquierda;
                   si frente-libre entonces avanza;
                   deja-zumbador;
                   gira-izquierda;
                   si frente-libre entonces avanza;
                   deja-zumbador;
                   gira-izquierda;
                  si frente-libre entonces  avanza;
                  mientras no-orientado-al-este hacer gira-izquierda;

                    fin;
fin ;
fin
                       sino inicio


                  gira-izquierda;
                   si frente-libre entonces inicio
                   avanza;
                   deja-zumbador;
                   gira-izquierda;
                    si frente-libre entonces avanza;
                     deja-zumbador;
                   gira-izquierda;
                    si frente-libre entonces avanza;
                     deja-zumbador;
                    si frente-libre entonces inicio
                    avanza;
                    deja-zumbador; gira-izquierda;

                          si frente-libre entonces avanza;
                          deja-zumbador;
                          gira-izquierda;
                          si frente-libre entonces avanza;
                          mientras no-orientado-al-este hacer gira-izquierda;

                            fin
                            sino inicio
                            gira-izquierda;
                            si frente-libre entonces avanza;
                             fin;





                           fin

                           sino inicio
                           gira-izquierda;
                           si frente-libre entonces avanza;
                           deja-zumbador;
                           gira-izquierda;
                           si frente-libre entonces avanza;
                           deja-zumbador;
                           gira-izquierda;
                           si frente-libre entonces avanza;
                           deja-zumbador;
                           gira-izquierda;
                           si frente-libre entonces avanza;
                           mientras no-orientado-al-este hacer gira-izquierda
                           fin;
                           fin;
                       fin
                  sino inicio
                     repetir 9 veces deja-zumbador ;
                     si frente-libre entonces avanza;
                     sal-de-instruccion;
                fin;

                fin;
                fin;









define-nueva-instruccion  busca (n) como inicio
si junto-a-zumbador entonces inicio
coge-zumbador;
busca (sucede(n));
fin
sino inicio
si si-es-cero (precede(n)) entonces inicio
repetir 1 veces deja-zumbador;
si frente-libre entonces avanza;
fin
sino inicio
 si si-es-cero (precede(precede(n))) entonces inicio
repetir 2 veces deja-zumbador;
si frente-libre entonces avanza;
fin
sino inicio
 si si-es-cero (precede(precede(precede(n)))) entonces inicio
repetir 3 veces deja-zumbador;
si frente-libre entonces avanza;
fin
sino inicio
 si si-es-cero (precede(precede(precede(precede(n))))) entonces inicio
repetir 4 veces deja-zumbador;
si frente-libre entonces avanza;
fin
sino inicio
  si si-es-cero (precede(precede(precede(precede(precede(n)))))) entonces inicio
repetir 5 veces deja-zumbador;
si frente-libre entonces avanza;
fin
sino inicio
 si si-es-cero (precede(precede(precede(precede(precede(precede(n))))))) entonces inicio
repetir 6 veces deja-zumbador;
si frente-libre entonces avanza;
fin
sino inicio
 si si-es-cero (precede(precede(precede(precede(precede(precede(precede(n)))))))) entonces inicio
repetir 7 veces deja-zumbador;
si frente-libre entonces avanza;
fin
sino inicio
 si si-es-cero (precede(precede(precede(precede(precede(precede(precede(precede(n))))))))) entonces inicio
repetir 8 veces deja-zumbador;
si frente-libre entonces avanza;
fin
sino inicio
 si si-es-cero (precede(precede(precede(precede(precede(precede(precede(precede(precede(n)))))))))) o  no si-es-cero (precede(precede(precede(precede(precede(precede(precede(precede(precede(n)))))))))) entonces inicio
repetir 9 veces deja-zumbador;
mina  (0);
fin;
fin;
fin;
fin;
fin;
fin;
fin;
fin;
fin;
fin;
fin;





define-nueva-instruccion haz como inicio
mientras frente-libre o  junto-a-zumbador hacer inicio
mientras frente-libre y no junto-a-zumbador hacer avanza;
si junto-a-zumbador y frente-libre entonces inicio busca (0);
fin;
si frente-bloqueado y derecha-libre entonces inicio
si junto-a-zumbador entonces busca(0);
mientras no orientado-al-sur hacer gira-izquierda;
si frente-libre entonces avanza;
mientras no orientado-al-oeste hacer gira-izquierda;
mientras frente-libre hacer avanza;
mientras no orientado-al-este hacer gira-izquierda;
fin;
si frente-bloqueado y derecha-bloqueada entonces inicio
si junto-a-zumbador entonces busca (0);
sal-de-instruccion;
fin;
fin;
fin;
    inicia-ejecucion
    mientras no orientado-al-oeste hacer gira-izquierda;
    mientras frente-libre hacer avanza;
    mientras no orientado-al-norte hacer gira-izquierda;
    mientras frente-libre hacer avanza;
    mientras no orientado-al-este hacer gira-izquierda;
    haz;
        apagate;
    termina-ejecucion
finalizar-programa
