iniciar-programa
 define-nueva-instruccion inv como
  inicio
   gira-izquierda;
   gira-izquierda;
  fin;
 define-nueva-instruccion der como
  inicio
   repetir 3 veces
    gira-izquierda;
  fin;
 define-nueva-instruccion rec como
  inicio
   mientras frente-libre hacer
    avanza;
  fin;
 define-nueva-instruccion norte como
  inicio
   mientras no-orientado-al-norte hacer
    gira-izquierda;
  fin;
 define-nueva-instruccion sur como
  inicio
   mientras no-orientado-al-sur hacer
    gira-izquierda;
  fin;
 define-nueva-instruccion revml como
  inicio
   si junto-a-zumbador entonces
    inicio
     repetir 8 veces
      inicio
       si junto-a-zumbador entonces
        coge-zumbador;
      fin;
     si junto-a-zumbador entonces
      inicio
       coge-zumbador;
       si no-junto-a-zumbador entonces
        inicio
         repetir 9 veces
         deja-zumbador;
        fin
       sino
        inicio
         mientras junto-a-zumbador hacer
          coge-zumbador;
        fin;
      fin;
    fin;
  fin;
 define-nueva-instruccion limpia como
  inicio
   norte;
   revml;
   mientras frente-libre hacer
    inicio
     avanza;
     revml;
    fin;
   inv;
   rec;
   inv;
   mientras derecha-libre hacer
    inicio
     der;
     avanza;
     gira-izquierda;
     revml;
     mientras frente-libre hacer
      inicio
       avanza;
       revml;
      fin;
     inv;
     rec;
     inv;
    fin;
  fin;
 define-nueva-instruccion revmomym como
  inicio
   si junto-a-zumbador entonces
    inicio
     coge-zumbador;
     si junto-a-zumbador entonces
      inicio
       coge-zumbador;
       si junto-a-zumbador entonces
        inicio
         coge-zumbador;
         si junto-a-zumbador entonces
          inicio
           coge-zumbador;
           si junto-a-zumbador entonces
            inicio
             coge-zumbador;
             si junto-a-zumbador entonces
              inicio
               coge-zumbador;
               si junto-a-zumbador entonces
                inicio
                 coge-zumbador;
                 si junto-a-zumbador entonces
                  inicio
                   repetir 7 veces
                    deja-zumbador;
                  fin
                 sino
                  inicio
                   repetir 8 veces
                    deja-zumbador;
                  fin;
                fin
               sino
                inicio
                 repetir 7 veces
                  deja-zumbador;
                fin;
              fin
             sino
              inicio
               repetir 6 veces
                deja-zumbador;
              fin;
            fin
           sino
            inicio
             repetir 5 veces
              deja-zumbador;
            fin;
          fin
         sino
          inicio
           repetir 4 veces
            deja-zumbador;
          fin;
        fin
       sino
        inicio
         repetir 3 veces
          deja-zumbador;
        fin;
      fin
     sino
      inicio
       deja-zumbador;
       deja-zumbador;
      fin;
    fin
   sino
    inicio
     deja-zumbador;
    fin;
  fin;
 define-nueva-instruccion m como
  inicio
   repetir 4 veces
    inicio
     si frente-libre entonces
      inicio
       avanza;
       revmomym;
       si izquierda-libre entonces
        inicio
         gira-izquierda;
         avanza;
         revmomym;
         inv;
         avanza;
         gira-izquierda;
        fin;
       inv;
       avanza;
       inv;
      fin;
     gira-izquierda;
    fin;
  fin;
 define-nueva-instruccion revmm como
  inicio
   si junto-a-zumbador entonces
    inicio
     coge-zumbador;
     si junto-a-zumbador entonces
      inicio
       coge-zumbador;
       si junto-a-zumbador entonces
        inicio
         coge-zumbador;
         si junto-a-zumbador entonces
          inicio
           coge-zumbador;
           si junto-a-zumbador entonces
            inicio
             coge-zumbador;
             si junto-a-zumbador entonces
              inicio
               coge-zumbador;
               si junto-a-zumbador entonces
                inicio
                 coge-zumbador;
                 si junto-a-zumbador entonces
                  inicio
                   coge-zumbador;
                   si junto-a-zumbador entonces
                    inicio
                     repetir 8 veces
                      deja-zumbador;
                     m;
                    fin
                   sino
                    inicio
                     repetir 8 veces
                      deja-zumbador;
                    fin;
                  fin
                 sino
                  inicio
                   repetir 7 veces
                    deja-zumbador;
                  fin;
                fin
               sino
                inicio
                 repetir 6 veces
                  deja-zumbador;
                fin;
              fin
             sino
              inicio
               repetir 5 veces
                deja-zumbador;
              fin;
            fin
           sino
            inicio
             repetir 4 veces
              deja-zumbador;
            fin;
          fin
         sino
          inicio
           repetir 3 veces
            deja-zumbador;
          fin;
        fin
       sino
        inicio
         deja-zumbador;
         deja-zumbador;
        fin;
      fin
     sino
      inicio
       deja-zumbador;
      fin;
    fin;
  fin;
 define-nueva-instruccion buscaminas como
  inicio
   limpia;
   revmm;
   mientras frente-libre hacer
    inicio
     avanza;
     revmm;
    fin;
   inv;
   rec;
   inv;
   mientras izquierda-libre hacer
    inicio
     gira-izquierda;
     avanza;
     der;
     revmm;
     mientras frente-libre hacer
      inicio
       avanza;
       revmm;
      fin;
     inv;
     rec;
     inv;
    fin;
  fin;
    inicia-ejecucion
     buscaminas;
        apagate;
    termina-ejecucion
finalizar-programa
