iniciar-programa
define-nueva-instruccion cue(n) como
    inicio
    si junto-a-zumbador entonces
        inicio
        coge-zumbador;
        cue(sucede(n));
        sal-de-instruccion;
        fin;
     repetir 2 veces gira-izquierda;
     avanza;
     repetir 2 veces gira-izquierda;
     repetir n veces deja-zumbador;
    fin;
 define-nueva-instruccion kam(n) como
     inicio


          si orientado-al-norte y junto-a-zumbador entonces
           inicio
           coge-zumbador;
           avanza;
           deja-zumbador;
           repetir 2 veces gira-izquierda;
           avanza;
           repetir 2 veces gira-izquierda;
           kam(sucede(n));
           sal-de-instruccion;
           fin;
       si orientado-al-norte y no-junto-a-zumbador  entonces
           inicio
           avanza;
           cue(0);
           repetir 2 veces gira-izquierda;
           repetir 2 veces avanza;
           fin;

           si orientado-al-sur y junto-a-zumbador y no si-es-cero(n) entonces
           inicio
           coge-zumbador;
           kam(precede(n));
           fin;

       si orientado-al-sur  entonces
           inicio
           gira-izquierda;
           avanza;
           gira-izquierda;
           avanza;
           si derecha-bloqueada entonces
               inicio
               repetir 3 veces gira-izquierda;
               repetir n veces coge-zumbador;
               apagate;
               fin;
            avanza;
            kam(n);
           fin;
     fin;
 define-nueva-instruccion kamion(n) como
     inicio
      si junto-a-zumbador entonces
          inicio
           coge-zumbador;
           kamion(sucede(n));
          fin;
          mientras frente-libre hacer avanza;
           repetir n veces deja-zumbador;
           repetir 2 veces gira-izquierda;
           mientras frente-libre hacer avanza;
           repetir 2 veces gira-izquierda;
          avanza;
        gira-izquierda;
       avanza;
      kam(n);

     fin;
    inicia-ejecucion
    kamion(0);
        apagate;
    termina-ejecucion
finalizar-programa
