iniciar-programa


define-nueva-instruccion linea(x) como inicio
 si(frente-libre)entonces inicio
    si(junto-a-zumbador)entonces inicio
      coge-zumbador;
      linea(sucede(x));

     fin
  sino inicio
      avanza;
      linea(x);

  fin;
  fin
 sino inicio

   repetir x veces deja-zumbador;

 fin;
fin;

define-nueva-instruccion unos como inicio
 mientras(izquierda-libre)hacer inicio
  mientras(frente-libre)hacer inicio
    si(junto-a-zumbador)entonces inicio
      coge-zumbador;
      fin;
      avanza;
  fin;
  si(junto-a-zumbador)entonces inicio
   coge-zumbador;
   fin;
  gira-izquierdA; avanza;
  gira-izquierdA;
  mientras(frente-libre)hacer avanza;
  gira-izquierda; gira-izquierda;
 fin ;
 mientras(frente-libre)hacer inicio
    si(junto-a-zumbador)entonces inicio
      coge-zumbador;
      fin;
      avanza;
  fin;
    si(junto-a-zumbador)entonces inicio
      coge-zumbador;
      fin;

   mientras(no-orientado-al-sur)hacer gira-izquierdA;
   mientras(frente-libre)hacer avanza;
   gira-izquierda; gira-izquierda; gira-izquierda;
   mientras(frente-libre)hacer avanza;
   gira-izquierdA; gira-izquierda;
fin;

define-nueva-instruccion cuatro como inicio
 repetir 4 veces inicio
   si(frente-libre)entonces inicio
      avanza;
      si(junto-a-zumbador)entonces inicio
        gira-izquierda; gira-izquierda;
        avanza; gira-izquierdA; gira-izquierda;
       fin
       sino inicio
        deja-zumbador; deja-zumbador;
        gira-izquierda; gira-izquierda;
        avanza; gira-izquierda; gira-izquierdA;
        fin;
  fin;
    gira-izquierda;


fin;
fin;

define-nueva-instruccion preguntar como inicio
 si(junto-a-zumbador)entonces inicio
      coge-zumbador;
       si(no-junto-a-zumbador)entonces inicio
          cuatro;
          deja-zumbador; deja-zumbador;
       fin
       sino inicio
        deja-zumbador;
        fin;
   fin;
fin;

define-nueva-instruccion expandir como inicio

mientras(izquierda-libre)hacer inicio
 mientras(frente-libre)hacer inicio
   preguntar;
   avanza;
 fin;
   preguntar;
 gira-izquierda; avanza;
 gira-izquierda;
 mientras(frente-libre)hacer avanza;
 gira-izquierda; gira-izquierda;
fin;
 mientras(frente-libre)hacer inicio
   preguntar;
   avanza;
 fin;
   preguntar;

 mientras(no-orientado-al-sur)hacer gira-izquierda;
 mientras(frente-libre)hacer avanza;
 gira-izquierda; gira-izquierda; gira-izquierda;
 mientras(frente-libre)hacer avanza;
 gira-izquierda; gira-izquierdA;

fin;

define-nueva-instruccion nveces como inicio
 si(junto-a-zumbador)entonces inicio
    coge-zumbador;
    nveces;
    expandir;
    unos;
 fin
 sino inicio
   gira-izquierda; gira-izquierda;
   gira-izquierda;
 fin;
 fin;

    inicia-ejecucion

 nveces;

 gira-izquierda;

 mientras(derecha-libre)hacer inicio
   mientras(frente-libre)hacer avanza;
   gira-izquierda; gira-izquierda;
   linea(0);
   gira-izquierda; avanza; gira-izquierda;
 fin;
 mientras(frente-libre)hacer avanza;
 gira-izquierda; gira-izquierda;
   linea(0);
    gira-izquierda; gira-izquierda; gira-izquierda;
    linea(0);
        apagate;
    termina-ejecucion
finalizar-programa
