iniciar-programa
define-nueva-instruccion gd como repetir 3 veces gira-izquierda;

define-nueva-instruccion md como repetir 2 veces gira-izquierda;

define-nueva-instruccion iz como  gira-izquierda;

define-nueva-instruccion pared como mientras frente-libre hacer avanza;

define-nueva-instruccion entrar como inicio
    si orientado-al-norte entonces md;
    si orientado-al-este entonces gd;
    si orientado-al-oeste entonces iz;
    pared;
    gd;
    pared;
    gd;
fin;
define-nueva-instruccion prose(n) como inicio
  repetir 1 veces inicio
      mientras frente-libre o no-junto-a-zumbador hacer inicio
           si no-junto-a-zumbador entonces deja-zumbador;
                si frente-libre entonces avanza;
                    gd;
                        si frente-libre entonces avanza;
                            iz;
     fin;
     si si-es-cero(n) entonces inicio
         iz;
         pared;
         md;
        prose(sucede(n));
     fin;
  fin;
fin;



    inicia-ejecucion
    entrar;
   prose(0);
        apagate;
    termina-ejecucion
finalizar-programa
