iniciar-programa
define-nueva-instruccion diagonal como inicio
mientras no-orientado-al-norte hacer inicio
gira-izquierda;
fin;
mientras frente-libre hacer inicio
mientras no-orientado-al-norte hacer inicio
gira-izquierda;
fin;
avanza;
gira-izquierda;
avanza;
deja-zumbador;
fin;
fin;

define-nueva-instruccion diagonal2 como inicio
mientras no-orientado-al-sur hacer inicio
gira-izquierda;
fin;
mientras frente-libre hacer inicio
avanza;
fin;
mientras no-orientado-al-norte hacer inicio
gira-izquierda;
fin;
deja-zumbador;
mientras frente-libre hacer inicio
mientras no-orientado-al-norte hacer inicio
gira-izquierda;
fin;
avanza;
repetir 3 veces inicio
gira-izquierda;
fin;
avanza;
si no-junto-a-zumbador entonces inicio
deja-zumbador;
fin;
fin;
fin;


    inicia-ejecucion
    si  frente-bloqueado y izquierda-bloqueada y derecha-bloqueada entonces inicio
    deja-zumbador;
    apagate;
    fin;
    mientras no-orientado-al-sur hacer inicio
    gira-izquierda;
    fin;
    mientras frente-libre hacer inicio
    avanza;
    fin;
    si frente-bloqueado y izquierda-bloqueada entonces inicio
    gira-izquierda;
    gira-izquierda;
    fin
    sino inicio
    gira-izquierda;
    mientras frente-libre hacer inicio
    avanza;
    fin;
    deja-zumbador;
    diagonal;
    diagonal2;
    fin;
        apagate;
    termina-ejecucion
finalizar-programa
