iniciar-programa
define-nueva-instruccion norte como inicio
    mientras no-orientado-al-norte hacer inicio
        gira-izquierda;
   fin;
fin;

define-nueva-instruccion sur como inicio
    mientras no-orientado-al-sur hacer inicio
        gira-izquierda;
   fin;
fin;

define-nueva-instruccion este como inicio
    mientras no-orientado-al-este hacer inicio
        gira-izquierda;
   fin;
fin;

define-nueva-instruccion oeste como inicio
    mientras no-orientado-al-oeste hacer inicio
        gira-izquierda;
   fin;
fin;

define-nueva-instruccion contar(n) como inicio

      mientras derecha-bloqueada   hacer inicio
    deja-zumbador;
         AVANZA;

          CONTAR(N);

         si orientado-al-norte entonces inicio
   este;
    avanza;

   contar(n);
   FIN;

   si orientado-al-este entonces inicio

   sur;
    avanza;

   contar(n);
   FIN;
    si orientado-al-sur entonces inicio
   oeste;
    avanza;
   contar(n);
   FIN;


        contar(sucede(n));

   SI DERECHA-LIBRE  ENTONCES  INICIO

   repetir sucede (n) veces inicio
        deja-zumbador;
    fin;

      FIN;
     FIN;

  fin;

  define-nueva-instruccion  juntar como inicio
      si junto-a-zumbador  entonces inicio
      coge-zumbador;
      sur;
      avanza;
      deja-zumbador;
      norte;
      avanza;
      juntar;
      fin;
      fin;
    inicia-ejecucion
    norte;
    avanza;
    avanza;
    contar(0);
    juntar;











        apagate;
    termina-ejecucion
finalizar-programa
