iniciar-programa
define-nueva-instruccion gira-derecha como
inicio
gira-izquierda;
gira-izquierda;
gira-izquierda;
fin;
    inicia-ejecucion

    mientras no-orientado-al-este hacer
    inicio
    gira-izquierda;
    fin;
    mientras frente-libre hacer
    inicio
    avanza;
    fin;
    mientras frente-bloqueado hacer
    inicio
    mientras no-orientado-al-sur hacer
    inicio
    gira-izquierda;
    fin;
    mientras frente-libre hacer
    inicio
    avanza;
    fin;
    gira-derecha;
    mientras no-junto-a-zumbador hacer
    inicio
    si no-junto-a-zumbador entonces
    inicio
    deja-zumbador;
si frente-bloqueado y izquierda-bloqueada entonces
    inicio
    apagate;
    fin;
    fin;
    si junto-a-zumbador entonces
    inicio

    avanza;
    gira-derecha;
    avanza;
    gira-izquierda;
    fin;
    mientras frente-bloqueado y orientado-al-oeste hacer
    inicio
    si no-junto-a-zumbador entonces
    inicio
    deja-zumbador;
    fin;
    mientras no-orientado-al-este hacer
    inicio
    gira-izquierda;
    fin;
    mientras frente-libre hacer
    inicio
    avanza;
    fin;
    mientras frente-bloqueado y izquierda-bloqueada y derecha-libre hacer
    inicio
    mientras no-orientado-al-oeste hacer
    inicio
    gira-izquierda;
    fin;
    mientras algun-zumbador-en-la-mochila hacer
    inicio
    si no junto-a-zumbador entonces
    inicio
    deja-zumbador
    fin;
    si junto-a-zumbador entonces
    mientras frente-bloqueado y junto-a-zumbador hacer
    inicio
    apagate;
    fin;
    avanza;
    gira-izquierda;
    avanza;
    gira-derecha;

    fin;

    fin;
    fin;
    fin;

    fin;

    apagate;
    termina-ejecucion
finalizar-programa
