iniciar-programa
 define-nueva-instruccion inv como
  inicio
   gira-izquierda;
   gira-izquierda;
  fin;
 define-nueva-instruccion der como
  inicio
   repetir 3 veces
    gira-izquierda;
  fin;
 define-nueva-instruccion rec como
  inicio
   mientras frente-libre hacer
    avanza;
  fin;
 define-nueva-instruccion pre como
  inicio
   rec;
   gira-izquierda;
   avanza;
   avanza;
   mientras derecha-libre hacer
    inicio
     inv;
     avanza;
     der;
     avanza;
     der;
     avanza;
    fin;
   gira-izquierda;
  fin;
 define-nueva-instruccion pas como
  inicio
   si junto-a-zumbador entonces
    inicio
     coge-zumbador;
     si frente-libre entonces
      inicio
       avanza;
       pas;
       deja-zumbador;
      fin
     sino
      inicio
       si derecha-libre entonces
        inicio
         inv;
         rec;
         gira-izquierda;
         avanza;
         gira-izquierda;
         pas;
         deja-zumbador;
        fin
       sino
        inicio
         gira-izquierda;
         rec;
         gira-izquierda;
         si junto-a-zumbador entonces
          inicio
           mientras junto-a-zumbador hacer
            avanza;
           deja-zumbador;
          fin
         sino
          inicio
           deja-zumbador;
          fin;
        fin;
      fin;
    fin
   sino
    inicio
     si frente-libre entonces
      inicio
       avanza;
       pas;
      fin
     sino
      inicio
       si derecha-libre entonces
        inicio
         inv;
         rec;
         gira-izquierda;
         avanza;
         gira-izquierda;
         pas;
        fin
       sino
        inicio
         gira-izquierda;
         rec;
         gira-izquierda;
         si junto-a-zumbador entonces
          inicio
           mientras junto-a-zumbador hacer
            avanza;
          fin;
        fin;
      fin;
    fin;
  fin;
 define-nueva-instruccion lcdk como
  inicio
   mientras no-orientado-al-este hacer
    gira-izquierda;
   mientras frente-libre hacer
    inicio
     pre;
     pas;
    fin;
  fin;
    inicia-ejecucion
     lcdk;
        apagate;
    termina-ejecucion
finalizar-programa
