iniciar-programa
  define-nueva-instruccion gd como
  repetir 3 veces gira-izquierda;
  define-nueva-instruccion mv como
  repetir 2 veces gira-izquierda;
  define-nueva-instruccion pasa como
  inicio
   si frente-libre entonces
   avanza
   sino
   inicio
    mv;
    mientras frente-libre hacer avanza;
    gira-izquierda;
    avanza;
    gira-izquierda;
   fin;
  fin;
  define-nueva-instruccion pasa2 como
  inicio
   si frente-libre entonces
   inicio
    avanza;
    si junto-a-zumbador entonces
    inicio
     mv;
     avanza;
     gd;
     avanza;
    fin;
   fin
   sino
   inicio
   gira-izquierda;
   avanza;
   fin;
  fin;
  define-nueva-instruccion cuenta(N) como
  inicio
   si no (frente-bloqueado y derecha-bloqueada) entonces
   inicio
    pasa;
    cuenta(sucede(N));
    repetir N veces deja-zumbador;
    deja-zumbador;
    pasa2;
   fin
   sino
   inicio
   gira-izquierda;
   mientras frente-libre hacer avanza;
   gira-izquierda;
   fin;
  fin;
    inicia-ejecucion
      mientras no orientado-al-oeste hacer gira-izquierda;
      mientras frente-libre hacer avanza;
      gira-izquierda;
      mientras frente-libre hacer avanza;
      mv;
      cuenta(1);
      deja-zumbador;
        apagate;
    termina-ejecucion
finalizar-programa
