iniciar-programa
define-nueva-instruccion g(n) como repetir n veces gira-izquierda;
define-nueva-instruccion cuenta como inicio
si junto-a-zumbador entonces inicio
coge-zumbador;
coge-zumbador;
coge-zumbador;
coge-zumbador;
si junto-a-zumbador entonces inicio
coge-zumbador;
cuenta;
repetir 5 veces deja-zumbador;
fin
sino inicio
si izquierda-libre o derecha-libre entonces inicio
repetir 5 veces deja-zumbador; apagate;
fin
sino
si derecha-bloqueada y izquierda-bloqueada entonces
repetir 10 veces deja-zumbador; apagate;
fin;
fin;
si no-junto-a-zumbador entonces
repetir 5 veces deja-zumbador;
fin;
define-nueva-instruccion lol como inicio
mientras frente-libre y izquierda-bloqueada  hacer
    avanza;
    si no-junto-a-zumbador y (derecha-libre o izquierda-libre) entonces inicio
    repetir 5 veces deja-zumbador;
    fin
    sino
    si junto-a-zumbador entonces inicio
    cuenta;
    fin;

    si derecha-libre y izquierda-bloqueada entonces repetir 3 veces gira-izquierda;
    si izquierda-libre entonces gira-izquierda; si frente-libre entonces avanza;
    si frente-bloqueado y izquierda-bloqueada y derecha-bloqueada entonces inicio
    si no-junto-a-zumbador entonces inicio
    repetir 10 veces deja-zumbador;
    fin
    sino
    si junto-a-zumbador entonces inicio
    repetir 4 veces coge-zumbador;
    repetir 10 veces deja-zumbador; apagate;
    fin;
    g(2);
    fin;
    lol;
   fin;

    inicia-ejecucion
    si frente-bloqueado y izquierda-bloqueada y derecha-bloqueada entonces inicio
    repetir 20 veces deja-zumbador; apagate;
    fin;
    repetir 4 veces deja-zumbador;
    lol;
           apagate;
    termina-ejecucion
finalizar-programa
