iniciar-programa
define-nueva-instruccion b(x) como inicio
   si frente-libre entonces inicio
    avanza;
     b(sucede(x));

   fin;
    coge-zumbador;
   si algun-zumbador-en-la-mochila entonces inicio
    repetir 2 veces gira-izquierda;

    repetir x veces avanza;
     repetir 3 veces gira-izquierda;
   fin;
   mientras frente-libre hacer avanza;
    repetir 3 veces gira-izquierda;
     avanza;
      repetir 3 veces gira-izquierda;
       repetir 2 veces avanza;
        si algun-zumbador-en-la-mochila entonces deja-zumbador;
        apagate;
   fin;
 define-nueva-instruccion salir como inicio
  mientras no-orientado-al-sur hacer gira-izquierda;
 mientras  frente-libre hacer avanza;
       si frente-bloqueado y orientado-al-sur  entonces repetir 3 veces  gira-izquierda;
         mientras frente-libre hacer avanza;
         si frente-bloqueado y izquierda-bloqueada entonces inicio
           repetir 3 veces gira-izquierda;
             avanza;
              gira-izquierda;
               mientras frente-libre hacer avanza;
               gira-izquierda;
         fin;

      fin;
    inicia-ejecucion
       salir;
         b(0);
         si junto-a-zumbador entonces coge-zumbador;
        apagate;

    termina-ejecucion
finalizar-programa
