iniciar-programa
define-nueva-instruccion derecha como repetir 3 veces gira-izquierda;
define-nueva-instruccion retrocede como repetir 2 veces gira-izquierda;
define-nueva-instruccion acomodar como
 inicio
  mientras no-orientado-al-oeste hacer gira-izquierda;
  mientras frente-libre hacer avanza;
  gira-izquierda;
  mientras frente-libre hacer avanza;
  retrocede;
 fin;

 define-nueva-instruccion regresa2 como
 inicio
 gira-izquierda;
 avanza;
 fin;

 define-nueva-instruccion regresa como
  inicio
  retrocede;
  avanza;
  derecha;
  avanza;
  fin;

 define-nueva-instruccion mina como
  inicio
   mientras no-orientado-al-este hacer gira-izquierda;
   si frente-libre entonces
   inicio
   avanza;
   deja-zumbador;
   gira-izquierda;
   si frente-libre entonces
   inicio
   avanza;
   deja-zumbador;
   regresa;
   fin
   sino regresa2;
   fin;

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

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

   mientras no-orientado-al-norte hacer gira-izquierda;
    si frente-libre entonces
   inicio
   avanza;
   deja-zumbador;
   gira-izquierda;
   si frente-libre entonces
   inicio
   avanza;
   deja-zumbador;
   regresa;
   fin
   sino regresa2;
   fin;
     mientras no-orientado-al-norte hacer gira-izquierda;
  fin;
 define-nueva-instruccion debuelve 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
                            mina;
                           fin
                            sino repetir 8 veces deja-zumbador;
                        fin
                        sino repetir 7 veces deja-zumbador;
                     fin
                      sino repetir 6 veces deja-zumbador;
                  fin
                   sino repetir 5 veces deja-zumbador;
               fin
                sino repetir 4 veces deja-zumbador;
             fin
             sino repetir 3 veces deja-zumbador;
        fin
        sino repetir 2 veces deja-zumbador;
     fin
     sino deja-zumbador;
     fin;
   retrocede;
   mientras frente-libre hacer avanza;
   si frente-bloqueado y izquierda-libre entonces
    inicio
    gira-izquierda;
    avanza;
    gira-izquierda;
    fin;
  fin;


 define-nueva-instruccion busca como
  inicio
  mientras no-orientado-al-norte hacer gira-izquierda;
  mientras frente-libre hacer
    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
                            mina;
                           fin
                            sino repetir 8 veces deja-zumbador;
                        fin
                        sino repetir 7 veces deja-zumbador;
                     fin
                      sino repetir 6 veces deja-zumbador;
                  fin
                   sino repetir 5 veces deja-zumbador;
               fin
                sino repetir 4 veces deja-zumbador;
             fin
             sino repetir 3 veces deja-zumbador;
        fin
        sino repetir 2 veces deja-zumbador;
     fin
     sino deja-zumbador;

    fin;
    si frente-libre entonces avanza;
    si frente-bloqueado y orientado-al-norte  entonces debuelve;

    fin;
  fin;

    inicia-ejecucion
    acomodar;
    busca;
        apagate;
    termina-ejecucion
finalizar-programa

