

iniciar-programa

define-nueva-instruccion gira(n) como inicio
repetir n veces inicio
gira-izquierda;
fin;
fin;

define-nueva-instruccion descontar como inicio
gira(2);
si no junto-a-zumbador entonces inicio
avanza;
fin;
mientras frente-libre hacer inicio
si frente-libre entonces inicio
avanza;
fin;
coge-zumbador;
fin;
gira(2);
      mientras no junto-a-zumbador hacer inicio
      avanza;
      fin;
      gira(3);
      mientras algun-zumbador-en-la-mochila hacer inicio
      deja-zumbador;
      fin;
fin;


  define-nueva-instruccion comparar como inicio
  mientras frente-libre hacer inicio
 si frente-libre entonces inicio
 avanza;
 fin;
  si junto-a-zumbador entonces inicio
  gira(1);
  si frente-libre entonces inicio
  avanza;
  fin
  sino inicio
  descontar;
  fin;
      si junto-a-zumbador y orientado-al-norte entonces inicio
       gira(2);
       avanza;
       gira(1);

  fin
      sino inicio
      si no junto-a-zumbador entonces inicio
       descontar;
    fin;
    fin;
  fin;
  fin;

  fin;

  define-nueva-instruccion contar como inicio
   gira(3);
   mientras frente-libre hacer inicio
   avanza;
   fin;
   gira(3);
   mientras frente-libre hacer inicio
   avanza;
   fin;
   gira(2);
   avanza;
   mientras no junto-a-zumbador hacer inicio
   si frente-libre entonces inicio
   avanza;
   fin
   sino inicio
   gira(2);
   mientras frente-libre hacer inicio
   avanza;
   fin;
   gira(2);
   fin;
   fin;
   coge-zumbador;
   gira(2);
   mientras frente-libre hacer inicio
   avanza;
   fin;
   deja-zumbador;
   gira(2);
   avanza;
  fin;

  define-nueva-instruccion viga como inicio
  si junto-a-zumbador entonces inicio
   gira(1);
    mientras junto-a-zumbador y frente-libre hacer inicio
    avanza;
   fin;
    gira(2);
    si no junto-a-zumbador entonces inicio
    avanza;
    fin;
      gira(1);
      comparar;
      contar;
  fin
  sino inicio
   avanza;
  fin;
  fin;



    inicia-ejecucion
     mientras frente-libre hacer inicio
    viga;
     fin;

      si junto-a-zumbador y orientado-al-este entonces inicio
      gira(2);
      coge-zumbador;
      mientras frente-libre hacer inicio
      avanza;
      fin;
      deja-zumbador;
      fin;

 apagate;
    termina-ejecucion
finalizar-programa
