iniciar-programa
define-nueva-instruccion gira(g) como repetir g veces gira-izquierda;
define-nueva-instruccion avanzar como inicio
mientras frente-libre hacer inicio
mientras frente-libre hacer inicio
avanza;
si frente-bloqueado y no orientado-al-oeste o (orientado-al-oeste y derecha-bloqueada) o( orientado-al-este) entonces inicio
gira(1);
si orientado-al-este y no junto-a-zumbador y derecha-bloqueada entonces apagate;
fin;
si (orientado-al-oeste o orientado-al-sur o orientado-al-norte ) y derecha-libre entonces gira(3);
si frente-bloqueado y no orientado-al-oeste o (orientado-al-oeste y derecha-bloqueada) y orientado-al-este entonces inicio
gira(1);
si orientado-al-este y no junto-a-zumbador y derecha-bloqueada entonces apagate;
fin;
avanzar;
fin;
fin;
fin;
    inicia-ejecucion
    mientras no orientado-al-sur hacer gira-izquierda;
    mientras frente-libre hacer avanza;
    gira(3);
    mientras frente-libre hacer avanza;
    gira(2);
    avanzar;
        apagate;
    termina-ejecucion
finalizar-programa
