iniciar-programa
define-nueva-instruccion gira(l) como repetir l veces gira-izquierda;
define-nueva-instruccion color(n) como inicio
si junto-a-zumbador y orientado-al-norte entonces inicio
coge-zumbador;
color(sucede(n));
fin sino inicio
gira(1);
mientras frente-libre hacer avanza;
gira(1);
mientras frente-libre hacer avanza;
gira(1);
repetir n veces avanza;
deja-zumbador;
gira(2);
mientras frente-libre hacer avanza;
gira(3);
avanza;
gira(3);
mientras frente-libre hacer avanza;
gira(1);
fin;
fin;
define-nueva-instruccion eliaseskaka(u) como inicio
mientras no-junto-a-zumbador y frente-libre y orientado-al-este hacer avanza;
si junto-a-zumbador y orientado-al-este entonces inicio
coge-zumbador;
si no-junto-a-zumbador y orientado-al-este entonces inicio
si frente-libre entonces avanza;
eliaseskaka(1);
fin;
si junto-a-zumbador y orientado-al-este entonces inicio
coge-zumbador;
si frente-libre entonces avanza;
eliaseskaka(2);
fin;
fin sino inicio
si orientado-al-este y frente-bloqueado entonces inicio
gira(2);
mientras frente-libre hacer avanza;
fin;
fin;
si si-es-cero(precede(u)) entonces inicio
deja-zumbador;
fin;
fin;
inicia-ejecucion
mientras no-orientado-al-norte hacer gira(1);
 avanza;              
 gira(3);
 mientras frente-libre hacer avanza;
 gira(1);
 mientras orientado-al-norte hacer inicio
 mientras frente-libre y no-junto-a-zumbador hacer avanza;
 si frente-bloqueado y orientado-al-norte y no-junto-a-zumbador y izquierda-libre entonces inicio
gira(2);
mientras frente-libre hacer avanza;
gira(3);
avanza;
gira(3);
fin;
si frente-bloqueado y no-junto-a-zumbador y orientado-al-norte y izquierda-bloqueada entonces inicio
gira(2);
mientras frente-libre hacer avanza;
gira(1);
fin;
 si junto-a-zumbador entonces color(0);
   fin;
si orientado-al-este entonces eliaseskaka(0);
            apagate;
    termina-ejecucion
finalizar-programa
