iniciar-programa
define-nueva-instruccion gira (n) como inicio
      repetir n veces inicio
      gira-izquierda;
      fin;
fin;
define-nueva-instruccion cerrar como inicio
gira-izquierda;
gira-izquierda;
avanza;
gira (3);
mientras frente-libre hacer inicio
avanza;
fin;
gira (3);
avanza;
gira (3);
si frente-bloqueado entonces inicio
fin;
mientras no junto-a-zumbador hacer inicio
deja-zumbador;
avanza;
fin;
gira-izquierda;
gira-izquierda;
mientras  junto-a-zumbador hacer inicio
si frente-bloqueado entonces inicio
apagate;
fin;
avanza;
fin;
gira-izquierda;
fin;

   inicia-ejecucion
    mientras frente-libre y orientado-al-norte hacer inicio
    avanza;
     si frente-bloqueado entonces inicio
    gira (3);

  si no junto-a-zumbador y orientado-al-este entonces inicio
    mientras frente-libre y no junto-a-zumbador hacer inicio
    avanza;
    fin;

    si junto-a-zumbador entonces inicio
    gira (3);
    fin;

    si frente-bloqueado entonces inicio
    gira (3);
    avanza;
    gira-izquierda;
    si frente-bloqueado entonces inicio
    apagate;
    fin;
    avanza;
    gira-izquierda
    fin;
    fin;


    fin;
     si junto-a-zumbador entonces inicio
     si orientado-al-sur entonces inicio
     gira (1);
     fin;
    gira (2);
    mientras frente-libre hacer inicio
    avanza;
    fin;

     gira-izquierda;
     avanza;
     deja-zumbador;
     cerrar;

    fin;
     fin;
        apagate;
    termina-ejecucion
finalizar-programa
