iniciar-programa
define-nueva-instruccion gira(n) como inicio
   repetir n veces gira-izquierda;
   fin;
define-nueva-instruccion principio como inicio
   si junto-a-zumbador entonces coge-zumbador;
   si junto-a-zumbador entonces inicio
      deja-zumbador;
      sal-de-instruccion;
      fin
   sino inicio
      si derecha-libre entonces inicio
         repetir 5 veces deja-zumbador;
         apagate;
         fin;
      si derecha-bloqueada entonces inicio
         gira(1);
         si derecha-libre entonces repetir 10 veces deja-zumbador;
         si derecha-bloqueada entonces repetir 20 veces deja-zumbador;
         apagate;
         fin;
      fin;
   fin;
define-nueva-instruccion cuenta como inicio
   si frente-bloqueado y derecha-libre y izquierda-bloqueada entonces inicio
      gira(3);
      si junto-a-zumbador entonces principio;
      repetir 5 veces deja-zumbador;
      cuenta;
      fin;
   si frente-bloqueado y derecha-bloqueada y izquierda-bloqueada entonces inicio
      gira(2);
      si junto-a-zumbador entonces principio;
      si frente-bloqueado entonces inicio
         repetir 20 veces deja-zumbador;
         apagate;
         fin;
      repetir 10 veces deja-zumbador;
      cuenta;
      fin;
   si frente-libre y izquierda-bloqueada entonces inicio
      avanza;
      cuenta;
      fin;
   si izquierda-libre entonces inicio
      gira(1);
      repetir 5 veces deja-zumbador;
      avanza;
      cuenta;
      fin;
   fin;
  inicia-ejecucion
     deja-zumbador;
     cuenta;
        apagate;
    termina-ejecucion
finalizar-programa
