iniciar-programa
define-nueva-instruccion gira(n) como repetir n veces gira-izquierda;
define-nueva-instruccion siguienteMontana como inicio
  mientras frente-libre hacer avanza;
  gira(3);
  avanza;
  gira(3);
  fin;
define-nueva-instruccion MarcaErosion como inicio
  mientras frente-libre hacer avanza;
  gira(3);
  avanza;
  gira(3);
  mientras frente-libre y junto-a-zumbador hacer avanza;
  si no-junto-a-zumbador entonces inicio
    gira(2);
    avanza;
    gira(2);
    fin;
  coge-zumbador;
  gira(2);
  avanza;
  deja-zumbador;
  mientras frente-libre hacer avanza;
  gira(2);
  fin;
    inicia-ejecucion


    mientras algun-zumbador-en-la-mochila  hacer inicio


  mientras derecha-libre hacer inicio
    gira(3);
    avanza;
    gira(1);
    si junto-a-zumbador entonces inicio
    mientras frente-libre y junto-a-zumbador hacer avanza;
    si no-junto-a-zumbador entonces inicio
      gira(2);
      avanza;
      gira(2);
      fin;
    gira(3);
  si frente-libre entonces inicio
    avanza;
    si junto-a-zumbador entonces inicio
      gira(3);
      SiguienteMontana;
      fin
    sino inicio
     gira(3);
     si frente-libre entonces avanza;
     si junto-a-zumbador entonces inicio
       siguienteMontana;
       fin
     sino inicio
       si frente-libre entonces avanza;
       si junto-a-zumbador entonces MarcaErosion sino inicio
         mientras frente-libre hacer avanza;
         si junto-a-zumbador entonces MarcaErosion sino inicio
           SiguienteMontana;
           fin;
         fin;
       fin;
     fin;
     fin
     sino inicio gira(3); mientras frente-libre hacer avanza; gira(2); fin;
   fin;
   fin;

   (*ComienzoDeLaErosion*)

   mientras izquierda-libre hacer inicio
     gira(1);
     avanza;
     gira(3);
     si junto-a-zumbador entonces inicio
       mientras junto-a-zumbador y frente-libre hacer avanza;
       si no-junto-a-zumbador entonces inicio
         gira(2);
         avanza;
         gira(2);
         fin;
       coge-zumbador;
       si junto-a-zumbador entonces inicio
         gira(3);
         avanza;
         gira(3);
         mientras no-junto-a-zumbador hacer avanza;
         gira(2);
         avanza;
         deja-zumbador;
         gira(2);
         mientras frente-libre hacer avanza;
         gira(3);
         avanza;
         gira(3);
         fin
       sino inicio
         deja-zumbador;
         gira(2);
         mientras frente-libre hacer avanza;
         gira(2);
         fin;
       fin;
     fin;


         avanza;
         deja-zumbador;
         gira(2);
         avanza;
         gira(2);
         fin;

         avanza;
         mientras junto-a-zumbador hacer coge-zumbador;
         gira(2);
         avanza;
         gira(2);







        apagate;
    termina-ejecucion
finalizar-programa
