iniciar-programa
define-nueva-instruccion gira(n) como
repetir n veces gira-izquierda;
define-nueva-instruccion tache como
inicio
mientras algun-zumbador-en-la-mochila y frente-libre hacer
  inicio
   si no junto-a-zumbador entonces
   deja-zumbador;
     avanza;
      gira(1);
      avanza;
      gira(3);
si no junto-a-zumbador entonces deja-zumbador;
      avanza;
      gira-izquierda;avanza;
      girA(3);
  fin;
   fin;
 define-nueva-instruccion raya como
  inicio
   mientras algun-zumbador-en-la-mochila y frente-libre hacer
     inicio
        si no junto-a-zumbador entonces
        deja-zumbador;
        avanza;
        gira(3);
        AVANZA;
        gira(1);
     si no junto-a-zumbador entonces
      deja-zumbador;
      avanza;
      gira(3);
      avanza;
      gira(1);
     fin
  fin;

define-nueva-instruccion fila como
inicio
mientras algun-zumbador-en-la-mochila y frente-libre hacer
 inicio
  si frente-libre entonces
  si no junto-a-zumbador entonces deja-zumbador;
   avanza;

 fin;
fin;
define-nueva-instruccion medio como
inicio
 si frente-libre entonces avanza;
 si frente-libre entonces avanza;
 si frente-libre entonces
 inicio
 medio;
 fin
sino
inicio
gira(2);
fin;
avanza;
fin;
    inicia-ejecucion
mientras frente-libre hacer
 avanza;
 gira(1);
 mientras frente-libre hacer
 avanza;
 gira(1);
 MEDIO;
 GIRA(3);
 mientras no junto-a-zumbador hacer
   inicio
   deja-zumbador;
si frente-libre entonces
   avanza;
   fin;
   gira(3);
   mientras frente-libre hACER AVANZA;
   gira(3);
   mientras frente-libre hacer avanza;
   gira(2);
   medio;
   gira(3);
   mientras no junto-a-zumbador hacer
   inicio
   deja-zumbador;
   si frente-libre entonces
   avanza;
   fin;
   avanza;
   mientras no junto-a-zumbador hacer
   inicio
   deja-zumbador;
   si frente-libre entonces
   avanza;
   fin;
   gira(1);
   mientras frente-libre hacer
   avanza;
   gira(1);
   tache;
   deja-zumbador;
   gira(2);
   mientras frente-libre hacer
   avanza;
gira(2);
    raya;
    deja-zumbador;
        apagate;
    termina-ejecucion
finalizar-programa


