iniciar-programa
 define-nueva-instruccion g(n) como
 inicio
 repetir n veces
 gira-izquierda;
 fin;
   define-nueva-instruccion adelante como
   inicio
     si frente-libre entonces
     inicio
     avanza;
     fin
     sino
     inicio
      si izquierda-libre entonces
      inicio
        gira-izquierda;
        avanza;
        gira-izquierda;
        mientras frente-libre hacer
        avanza;
        g(2);
      fin
      sino
      inicio
        g(2);
        mientras frente-libre hacer
        avanza;
        gira-izquierda;
        mientras frente-libre hacer
        avanza;
      fin;
    fin;
   fin;
     define-nueva-instruccion divide como
     inicio
     si junto-a-zumbador entonces
     inicio
       coge-zumbador;
       divide;
        si orientado-al-sur entonces
        inicio
          deja-zumbador;
          g(1);
        fin
        sino
        inicio
          g(3);
        fin;
     fin;
     fin;
     define-nueva-instruccion come como
     inicio
     si orientado-al-este entonces
     inicio
      si junto-a-zumbador entonces
      inicio
        coge-zumbador;
        si junto-a-zumbador entonces
        inicio
        deja-zumbador;
        adelante;
        come;
        fin
        sino
        inicio
        deja-zumbador;
          repetir 2 veces
          inicio
          si algun-zumbador-en-la-mochila entonces
          deja-zumbador;
          fin;
          adelante;
          come;
        fin;
      fin
      sino
      inicio
      adelante;
      come;
      fin;
      fin
      sino
      inicio
      mientras algun-zumbador-en-la-mochila hacer
      deja-zumbador;
      divide;
      apagate;
      fin;

     fin;
  define-nueva-instruccion kaka como
  inicio
    repetir 4 veces
    inicio
    gira-izquierda;
     si frente-libre entonces
     inicio
     avanza;
   si junto-a-zumbador entonces
   inicio
     coge-zumbador;
     si junto-a-zumbador entonces
     inicio
     coge-zumbador;
      kaka;
        g(2);
        si frente-libre entonces
        avanza;
        g(2);
     fin
     sino
     inicio
     deja-zumbador;
     g(2);
     si frente-libre entonces
     avanza;
     g(2);
     fin;
   fin
   sino
   inicio
   g(2);
   si frente-libre entonces
   avanza;
   g(2);
   fin;
   fin;
  fin;
    fin;
    inicia-ejecucion
     kaka;
      repetir 4 veces
      inicio
      gira-izquierda;
       si orientado-al-sur entonces
       inicio
        mientras frente-libre hacer
        avanza;
        g(3);
        mientras frente-libre hacer
        inicio
        avanza;
        fin;
        g(2);
          come;
       fin;
      fin;
        apagate;
    termina-ejecucion
finalizar-programa
