iniciar-programa

define-nueva-instruccion apagon(n) como
inicio
   si frente-libre y derecha-libre entonces
   inicio
       si orientado-al-norte entonces
       inicio
           avanza;
           apagon(sucede(n));
       fin
       sino
       inicio
           si orientado-al-sur entonces
           inicio
               avanza;
               apagon(precede(n));
           fin
           sino
           inicio
               avanza;
               apagon(n);
           fin;
       fin;
   fin
   sino
   inicio
       si frente-bloqueado entonces
       inicio
        repetir n veces
            deja-zumbador;
       fin
       sino
       inicio
           gira-izquierda;
           apagon(n);
       fin;
   fin;
fin;


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