iniciar-programa
define-nueva-instruccion apagon(n) como
inicio

si orientado-al-norte y frente-libre y derecha-libre entonces
inicio
si frente-libre entonces
avanza;
apagon(sucede(n));
fin;

si orientado-al-sur y frente-libre y derecha-libre entonces inicio
si frente-libre entonces
avanza;
apagon(precede(n));
 fin;

 si derecha-libre y (orientado-al-este o orientado-al-oeste) y frente-libre entonces
 inicio
si frente-libre entonces
 avanza;
 apagon(n);
 fin;

si derecha-bloqueada  y frente-libre entonces
inicio
gira-izquierda;
apagon(n);
fin;

si frente-bloqueado entonces
inicio
repetir n veces deja-zumbador;
apagate;
fin;

fin;

    inicia-ejecucion
    apagon(0);
        apagate;
    termina-ejecucion
finalizar-programa
