iniciar-programa
define-nueva-instruccion gira(n) como repetir n veces gira-izquierda;
define-nueva-instruccion pasa como inicio
si junto-a-zumbador entonces inicio
coge-zumbador;
pasa;
deja-zumbador;
fin
sino avanza;
fin;
define-nueva-instruccion pasos(n) como inicio
si junto-a-zumbador entonces inicio
coge-zumbador;
pasos(sucede(n));
fin
sino inicio
repetir n veces deja-zumbador;
gira(2);
avanza;
si izquierda-bloqueada entonces inicio
gira(3);
fin
sino
gira(1);
mientras junto-a-zumbador hacer inicio
si frente-bloqueado entonces apagate;
avanza;
fin;
repetir n veces inicio
deja-zumbador;
avanza;
fin;
fin;
fin;
define-nueva-instruccion cuenta como inicio
si frente-libre entonces inicio
avanza;
cuenta;
deja-zumbador;
fin
sino coge-zumbador;
fin;

    inicia-ejecucion
    pasa;
    gira(2);
    avanza;
    gira(1);
    mientras frente-libre hacer avanza;
    gira(1);
    pasa;
    mientras algun-zumbador-en-la-mochila hacer inicio
    pasos(0);
    si junto-a-zumbador entonces inicio
    mientras no orientado-al-oeste hacer gira-izquierda;
    cuenta;
    apagate;
    fin;
    mientras frente-libre hacer avanza;
    gira(3);
    avanza;
    pasos(0);
    si junto-a-zumbador entonces inicio
    mientras no orientado-al-oeste hacer gira-izquierda;
    cuenta;
    apagate;
    fin;
    mientras frente-libre hacer avanza;
    gira(1);
    avanza;
    fin;

        apagate;
    termina-ejecucion
finalizar-programa
