iniciar-programa
 define-nueva-instruccion inv como
  inicio
   gira-izquierda;
   gira-izquierda;
  fin;
 define-nueva-instruccion karelitos como
  inicio
   si junto-a-zumbador entonces
    inicio
     coge-zumbador;
     si frente-libre entonces
      inicio
       avanza;
       karelitos;
       deja-zumbador;
       avanza;
      fin
     sino
      inicio
       inv;
       deja-zumbador;
       avanza;
      fin;
    fin
   sino
    inicio
     si frente-libre entonces
      inicio
       avanza;
       karelitos;
      fin
     sino
      inicio
       inv;
      fin;
    fin;
  fin;
 define-nueva-instruccion karelitas como
  inicio
   si junto-a-zumbador entonces
    inicio
     coge-zumbador;
     si junto-a-zumbador entonces
      inicio
       coge-zumbador;
       karelitas;
       deja-zumbador;
       deja-zumbador;
       avanza;
      fin
     sino
      inicio
       deja-zumbador;
       si frente-libre entonces
        inicio
         avanza;
         karelitas;
        fin
       sino
        inicio
         inv;
         karelitos;
         mientras frente-libre hacer
          avanza;
         inv;
        fin;
      fin;
    fin
   sino
    inicio
     si frente-libre entonces
      inicio
       avanza;
       karelitas;
      fin
     sino
      inicio
       inv;
       karelitos;
       mientras frente-libre hacer
        avanza;
       inv;
      fin;
    fin;
  fin;
 define-nueva-instruccion ddr como
  inicio
   mientras no-orientado-al-oeste hacer
    gira-izquierda;
   mientras frente-libre hacer
    avanza;
   inv;
   karelitas;
  fin;
    inicia-ejecucion
     ddr;
        apagate;
    termina-ejecucion
finalizar-programa
