iniciar-programa

define-nueva-instruccion sur como inicio
mientras no-orientado-al-sur hacer inicio
 gira-izquierda;
 fin;
 fin;
define-nueva-instruccion este como inicio
          mientras no-orientado-al-este hacer inicio
            gira-izquierda;
          fin;
    fin;
define-nueva-instruccion norte como inicio
           mientras no-orientado-al-norte hacer inicio
               gira-izquierda;
           fin;
fin;

define-nueva-instruccion oeste como inicio
           mientras no-orientado-al-oeste hacer inicio
               gira-izquierda;
           fin;
fin;

define-nueva-instruccion ir11 como inicio
norte;
mientras frente-libre hacer inicio
avanza;
fin;
oeste;
mientras frente-libre hacer inicio
avanza;
fin;
sur;
mientras frente-libre hacer inicio
avanza;
fin;
norte;
fin;

define-nueva-instruccion ir12 como inicio
    sur;
    mientras frente-libre hacer inicio
       avanza;
    fin;
este;
avanza;
fin;

define-nueva-instruccion marcar(n)  como inicio
   norte;
   mientras frente-libre hacer inicio
     repetir n veces inicio
       si frente-libre entonces inicio
        avanza;
       fin;
     fin;
      deja-zumbador;
   fin;
   fin;

define-nueva-instruccion marcar2(n)  como inicio
  ir11;
   mientras no-junto-a-zumbador hacer inicio
     repetir n veces inicio
       si frente-libre entonces inicio
        avanza;
       fin;
     fin;
   fin;
   sur;
fin;

define-nueva-instruccion toma2(n)como inicio
    si junto-a-zumbador entonces inicio
    coge-zumbador;
    toma2(sucede(n));
    fin sino inicio
    marcar2(n);
    fin;
    fin;
define-nueva-instruccion toma(n)como inicio
    si junto-a-zumbador entonces inicio
       coge-zumbador;
       toma(sucede(n));
    fin sino inicio
       marcar(n);
       fin;
       fin;

define-nueva-instruccion regresa como inicio
   si frente-libre entonces inicio
     avanza;
     regresa;
     deja-zumbador;
   fin sino inicio
         este;
         avanza;
         avanza;
      fin;
      fin;
inicia-ejecucion
          ir11;
          toma(0);
          ir12;
          toma2(0);
          regresa;
          apagate;
    termina-ejecucion
finalizar-programa



