iniciar-programa

define-nueva-instruccion recursion como inicio

si frente-libre entonces inicio
avanza;
si junto-a-zumbador entonces recursion;
si no junto-a-zumbador entonces inicio
repetir 2 veces gira-izquierda;
avanza;
repetir 2 veces gira-izquierda;
fin;
fin;

si izquierda-libre entonces inicio
gira-izquierda;
avanza;
si junto-a-zumbador entonces recursion;
si no-junto-a-zumbador entonces inicio
repetir 2 veces gira-izquierda;
avanza;
gira-izquierda;
fin;
fin;

si derecha-libre entonces inicio
repetir 3 veces gira-izquierda;
avanza;
si junto-a-zumbador entonces recursion;
si no junto-a-zumbador entonces inicio
repetir 2 veces gira-izquierda;
avanza;
repetir 3 veces gira-izquierda;
fin;
fin;

apagate;

fin;

    inicia-ejecucion

    si frente-bloqueado entonces inicio
    repetir 2 veces gira-izquierda;
    avanza;
    si junto-a-zumbador entonces recursion;
    si no-junto-a-zumbador entonces inicio
    repetir 2 veces gira-izquierda;
    avanza;
    fin;
    fin;

    si frente-libre entonces inicio
    avanza;
    si junto-a-zumbador entonces recursion;
    fin;
    si no-junto-a-zumbador entonces repetir 2 veces gira-izquierda;
    avanza;
    recursion;

    recursion;
        apagate;
    termina-ejecucion
finalizar-programa
