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 ve 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-sur hacer gira-izquierda;
    mientras frente-libre hacer avanza;
    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;
      ve;
        apagate;
    termina-ejecucion
finalizar-programa

