iniciar-programa
define-nueva-instruccion gira-derecha como inicio
repetir 3 veces gira-izquierda  fin;
define-nueva-instruccion vuelta como inicio
repetir 2 veces gira-izquierda fin;
define-nueva-instruccion podar como inicio
mientras junto-a-zumbador hacer inicio
coge-zumbador; si frente-libre entonces avanza;
si frente-bloqueado entonces inicio
si junto-a-zumbador entonces coge-zumbador;
vuelta;
si orientado-al-este entonces inicio
gira-izquierda; avanza;
si no-junto-a-zumbador entonces inicio
vuelta; avanza; gira-izquierda; avanza; gira-izquierda;
si frente-libre entonces avanza;
fin;
fin;
si orientado-al-oeste entonces inicio
gira-derecha; avanza;
si no-junto-a-zumbador entonces inicio
vuelta; avanza; gira-derecha; avanza; gira-derecha;
si frente-libre entonces avanza;
fin;
fin;
mientras junto-a-zumbador hacer inicio
coge-zumbador; avanza;
fin;
fin;
fin;
si no-junto-a-zumbador entonces inicio
vuelta; avanza;
si orientado-al-este entonces inicio
gira-izquierda; avanza; fin;
si orientado-al-oeste entonces inicio
gira-derecha; avanza; fin;
mientras junto-a-zumbador hacer inicio
coge-zumbador; avanza;
fin;
fin;
mientras no-orientado-al-oeste hacer gira-izquierda;
mientras frente-libre hacer avanza;
mientras no-orientado-al-sur hacer gira-izquierda;
mientras frente-libre hacer avanza;
gira-izquierda; mientras no-junto-a-zumbador y frente-libre hacer avanza;
gira-izquierda; avanza;
fin;
    inicia-ejecucion
        mientras no-orientado-al-este hacer gira-izquierda;
        mientras no-junto-a-zumbador y frente-libre hacer avanza;
        gira-izquierda; avanza;
        mientras junto-a-zumbador hacer inicio
        gira-izquierda; si frente-libre entonces avanza;
        si junto-a-zumbador entonces inicio
        podar;
        fin
        sino inicio
        vuelta;
        repetir 2 veces
        si frente-libre entonces avanza;
        si junto-a-zumbador entonces podar;
        fin;
        si no-junto-a-zumbador entonces inicio
        vuelta; avanza; gira-derecha; avanza;   fin;
        fin;
        mientras no-orientado-al-oeste hacer gira-izquierda;
        mientras frente-libre hacer avanza;
        mientras no-orientado-al-sur hacer gira-izquierda;
        mientras frente-libre hacer avanza;
        repetir 2 veces gira-izquierda;
        mientras algun-zumbador-en-la-mochila hacer deja-zumbador;
        apagate;
    termina-ejecucion
finalizar-programa
