iniciar-programa
  define-nueva-instruccion gd como
  inicio
  repetir 3 veces
  gira-izquierda;
  fin;
  define-nueva-instruccion mv como
  inicio
  gira-izquierda;
  gira-izquierda;
  fin;
  define-nueva-instruccion escuela como
  inicio
  si frente-libre entonces
  inicio
  si derecha-bloqueada y izquierda-bloqueada entonces
  inicio
  avanza;
  si frente-bloqueado entonces
  inicio
  gd;
  mientras frente-libre hacer avanza;
  mv;
  mientras derecha-bloqueada y frente-libre hacer avanza;
  gd;
  fin;
  escuela;
  deja-zumbador;
  fin;
  si frente-libre y (izquierda-libre o derecha-libre) entonces
  avanza;
   si frente-bloqueado entonces
  inicio
  gd;
  mientras frente-libre hacer avanza;
  mv;
  mientras derecha-bloqueada y frente-libre hacer avanza;
  gd;
  fin;
  escuela;
  fin;
  mientras no-orientado-al-oeste hacer gira-izquierda;
  mientras frente-libre hacer avanza;
  fin;

    inicia-ejecucion
    mientras no-orientado-al-oeste hacer gira-izquierda;
    mientras frente-libre hacer avanza;
    gira-izquierda;
    si frente-bloqueado entonces
    inicio
    gira-izquierda;
    mientras derecha-bloqueada y frente-libre hacer avanza;
    gd;
    fin;

    escuela;
        apagate;
    termina-ejecucion
finalizar-programa
