iniciar-programa
define-nueva-instruccion cuenta(n) como inicio
  si junto-a-zumbador entonces inicio
    coge-zumbador;
    cuenta(sucede(n));
  fin
  sino inicio
    avanza;
    deja-zumbador;
    deja-zumbador;
    mientras frente-libre hacer inicio
      repetir n veces inicio
        avanza;
        si junto-a-zumbador entonces inicio
          gira-izquierda;
          avanza;
        fin
        sino inicio
          deja-zumbador;
          si derecha-libre entonces inicio
            repetir 3 veces gira-izquierda;
          fin;
        fin;
      fin;
      deja-zumbador;
    fin;
  fin;
fin;
define-nueva-instruccion coge-postes(n) como inicio
  si junto-a-zumbador entonces inicio
    coge-zumbador;
    si junto-a-zumbador entonces inicio
      coge-zumbador;
      avanza;
      si derecha-libre entonces inicio
        repetir 3 veces gira-izquierda;
      fin;
      coge-postes(sucede(n));
    fin
    sino inicio
      deja-zumbador;
      avanza;
      si derecha-libre entonces inicio
        repetir 3 veces gira-izquierda;
      fin;
      coge-postes(n);
    fin;
  fin
  sino inicio
    repetir 2 veces gira-izquierda;
    avanza;
    gira-izquierda;
    avanza;
    repetir n veces deja-zumbador;
  fin;
fin;
define-nueva-instruccion coge-malla(n) como inicio
  si no orientado-al-oeste entonces inicio
    si junto-a-zumbador entonces inicio
      coge-zumbador;
      coge-malla(sucede(n));
    fin
    sino inicio
      avanza;
      si derecha-libre entonces inicio
        repetir 3 veces gira-izquierda;
      fin;
      coge-malla(n);
    fin;
  fin
  sino inicio
    repetir n veces deja-zumbador;
  fin;
fin;
define-nueva-instruccion coge-malla2(n) como inicio
  si no orientado-al-norte entonces inicio
    si junto-a-zumbador entonces inicio
      coge-zumbador;
      coge-malla2(sucede(n));
    fin
    sino inicio
      avanza;
      si derecha-libre entonces inicio
        repetir 3 veces gira-izquierda;
      fin;
      coge-malla2(n);
    fin;
  fin
  sino inicio
    repetir 2 veces gira-izquierda;
    avanza;
    gira-izquierda;
    avanza;
    avanza;
    repetir n veces deja-zumbador;
  fin;
fin;
   inicia-ejecucion
      repetir 3 veces gira-izquierda;
      avanza;
      gira-izquierda;
      cuenta(0);
      coge-zumbador;
      repetir 2 veces gira-izquierda;
      avanza;
      coge-postes(0);
      repetir 2 veces gira-izquierda;
      avanza;
      repetir 3 veces gira-izquierda;
      avanza;
      avanza;
      coge-malla(0);
      coge-malla2(0);
        apagate;
    termina-ejecucion
finalizar-programa
