iniciar-programa
define-nueva-instruccion escuela(n) como inicio
mientras no-junto-a-zumbador hacer inicio
si izquierda-bloqueada entonces inicio
si derecha-bloqueada entonces inicio
si frente-libre entonces inicio
avanza;
fin
sino inicio
si orientado-al-oeste entonces inicio
repetir n veces inicio
deja-zumbador;
fin;
apagate;
fin;
fin;
si orientado-al-sur entonces inicio
escuela(sucede(n));
fin;
si orientado-al-este y frente-bloqueado entonces inicio
gira-izquierda;
gira-izquierda;
fin;
fin;

si derecha-libre y izquierda-bloqueada entonces inicio
si frente-libre entonces inicio
avanza;
fin
sino inicio
si orientado-al-sur o orientado-al-este entonces inicio
repetir 3 veces inicio
gira-izquierda;
fin;
fin;
si orientado-al-oeste y frente-bloqueado entonces inicio
repetir n veces inicio
deja-zumbador;
fin;
apagate;
fin;
fin;
fin;
    fin;
      si izquierda-libre y (orientado-al-oeste o orientado-al-sur) entonces inicio
    gira-izquierda;
    avanza;
    fin;
    fin;
    fin;

    inicia-ejecucion
    mientras no-orientado-al-este hacer inicio
    gira-izquierda;
    fin;
    mientras frente-libre hacer inicio
    avanza;
    fin;
    mientras no-orientado-al-sur hacer inicio
    gira-izquierda;
    fin;
escuela(0);

        apagate;
    termina-ejecucion
finalizar-programa
