iniciar-programa
define-nueva-instruccion media-vuelta como inicio
repetir 2 veces gira-izquierda;
fin;
define-nueva-instruccion gira-derecha como inicio
repetir 3 veces gira-izquierda;
fin;
define-nueva-instruccion producto como inicio
si junto-a-zumbador entonces inicio
coge-zumbador;
producto;
deja-zumbador;
avanza;
deja-zumbador;
media-vuelta;
avanza;
media-vuelta;
fin;
fin;
define-nueva-instruccion multiplica como inicio
si junto-a-zumbador entonces inicio
coge-zumbador;
multiplica;
si no-junto-a-zumbador entonces sal-de-instruccion;
producto;
fin sino
    inicio
    avanza;
    si no-junto-a-zumbador entonces sal-de-instruccion;
    fin;
fin;
define-nueva-instruccion deposita-producto como inicio
si junto-a-zumbador entonces inicio
coge-zumbador;
deposita-producto;
deja-zumbador;
fin sino
    inicio
    media-vuelta;
    mientras frente-libre hacer inicio
    avanza;
    fin;
    gira-izquierda;
    avanza;
    gira-derecha;
    avanza;
    gira-derecha;
    avanza;     
    gira-izquierda;
    fin;
fin;
define-nueva-instruccion dividiendo como inicio
si junto-a-zumbador entonces inicio
coge-zumbador;
dividiendo;
media-vuelta;
deja-zumbador;
avanza;
deja-zumbador;
avanza;
deja-zumbador;
media-vuelta;
avanza;
avanza;
fin;
fin;
define-nueva-instruccion cuenta como inicio
si junto-a-zumbador entonces inicio
coge-zumbador;
cuenta;
si junto-a-zumbador entonces coge-zumbador sino sal-de-instruccion;
media-vuelta;
avanza;
deja-zumbador;
media-vuelta;
avanza;
fin sino
    inicio
    gira-izquierda;
    avanza;
    gira-izquierda;
    avanza;
    avanza;
    fin;
fin;
define-nueva-instruccion regresa como inicio
media-vuelta;
avanza;
media-vuelta;
fin;
define-nueva-instruccion compara como inicio
si junto-a-zumbador entonces inicio
coge-zumbador;
media-vuelta;
avanza;
deja-zumbador;
si junto-a-zumbador entonces inicio
gira-derecha;
avanza;
gira-derecha;
avanza;
media-vuelta;
coge-zumbador;
avanza;
deja-zumbador;
gira-izquierda;
avanza;
gira-izquierda;
avanza;
fin;
fin;
fin;
define-nueva-instruccion posisiona-resultado como inicio
gira-derecha;
avanza;
avanza;
gira-derecha;
avanza;
deja-zumbador;
media-vuelta;
avanza;
gira-izquierda;
avanza;
fin;
define-nueva-instruccion deposita-residuo como inicio
si junto-a-zumbador entonces inicio
coge-zumbador;
deposita-residuo;
deja-zumbador;
fin sino
    inicio
    avanza;
    fin;
fin;
define-nueva-instruccion limpia-residuos como inicio
mientras frente-libre hacer inicio
avanza;
fin;
mientras junto-a-zumbador hacer inicio
coge-zumbador;
fin;
gira-izquierda;
avanza;
gira-izquierda;
mientras junto-a-zumbador hacer inicio
coge-zumbador;
fin;
avanza;
gira-izquierda;
avanza;
gira-derecha;
avanza;
fin;
define-nueva-instruccion verifica como inicio
gira-izquierda;
avanza;
si junto-a-zumbador entonces inicio
mientras junto-a-zumbador hacer inicio
coge-zumbador;
fin;
gira-izquierda;
avanza;
mientras junto-a-zumbador hacer inicio
coge-zumbador;
fin;
gira-izquierda;
avanza;
gira-izquierda;
deposita-residuo;
apagate;
fin;
si no-junto-a-zumbador entonces inicio
posisiona-resultado;
limpia-residuos;
fin;
fin;
    inicia-ejecucion
    gira-izquierda;
    mientras frente-libre hacer inicio
    avanza;
    fin;
    si frente-bloqueado entonces inicio
    gira-derecha;
    avanza;
    gira-izquierda;
    avanza;
    gira-izquierda;
    avanza;
    gira-derecha;
    fin;
    si junto-a-zumbador entonces inicio
    multiplica;
    fin;
    avanza;
    si junto-a-zumbador entonces inicio
    deposita-producto;
    gira-izquierda;
    repetir 2 veces avanza;
    gira-izquierda;
    avanza;
    fin;
    si no-junto-a-zumbador entonces inicio
    gira-derecha;
    avanza;
    avanza;
    gira-derecha;
    avanza;
    avanza;
    media-vuelta;
    fin;
    mientras junto-a-zumbador hacer inicio
    dividiendo;
    media-vuelta;
    avanza;
    avanza;
    cuenta;
    regresa;
    mientras junto-a-zumbador hacer inicio
    compara;
    fin;
    verifica;
    fin;
        apagate;
    termina-ejecucion
finalizar-programa
