iniciar-programa
define-nueva-instruccion final como inicio
mientras frente-libre o frente-bloqueado hacer
inicio
     gira-izquierda;
     si no-junto-a-zumbador entonces
     apagate;
     si junto-a-zumbador entonces
     inicio
     repetir 2 veces
     coge-zumbador;
     avanza;
     gira-izquierda;
     deja-zumbador;
     avanza;
     deja-zumbador;
     gira-izquierda;
     avanza;
     gira-izquierda;
     avanza;
     fin;
     fin;

fin;

define-nueva-instruccion resta como inicio
    mientras junto-a-zumbador hacer
    inicio
    gira-izquierda;
    gira-izquierda;
    avanza;
    gira-izquierda;
    gira-izquierda;
    si junto-a-zumbador entonces
    inicio
    coge-zumbador;
    avanza;
    fin;
    si no-junto-a-zumbador entonces
    inicio
        avanza;
        mientras junto-a-zumbador hacer
        coge-zumbador;
        gira-izquierda;
        avanza;
        gira-izquierda;
        avanza;
        mientras algun-zumbador-en-la-mochila hacer
        deja-zumbador;
        final;
    fin;
    si junto-a-zumbador entonces
    coge-zumbador;
    avanza;
    repetir 2 veces
    deja-zumbador;
    gira-izquierda;
    gira-izquierda;
    avanza;
    gira-izquierda;
    gira-izquierda;
    fin;
    si no-junto-a-zumbador entonces
    inicio
        gira-izquierda;
        gira-izquierda;
        avanza;
        mientras junto-a-zumbador hacer
        coge-zumbador;
        gira-izquierda;
        gira-izquierda;
        gira-izquierda;
        avanza;
        mientras algun-zumbador-en-la-mochila hacer
        deja-zumbador;
        gira-izquierda;
        final;
    fin;
fin;

define-nueva-instruccion recoge como inicio

   mientras junto-a-zumbador hacer
   coge-zumbador;
   avanza;
fin;

define-nueva-instruccion irdosven como inicio
    gira-izquierda;
    gira-izquierda;
    mientras derecha-libre hacer
    avanza;
    mientras derecha-bloqueada hacer
    avanza;
    repetir 3 veces
    gira-izquierda;
    repetir 7 veces
    avanza;
    repetir 3 veces
    gira-izquierda;
    avanza;
    gira-izquierda;
    gira-izquierda;
    mientras frente-libre o frente-bloqueado hacer
    inicio
    mientras junto-a-zumbador hacer
    recoge;
    si no-junto-a-zumbador entonces
    inicio
    gira-izquierda;
    gira-izquierda;
    mientras frente-libre hacer
    avanza;
    gira-izquierda;
    si frente-bloqueado entonces
    inicio
    gira-izquierda;
    avanza;
    gira-izquierda;
    mientras frente-libre hacer
    avanza;
    gira-izquierda;
    mientras frente-libre hacer
    avanza;
    gira-izquierda;
    avanza;
    mientras algun-zumbador-en-la-mochila hacer
    deja-zumbador;
    resta;
    fin;
    si frente-libre entonces
    avanza;
    gira-izquierda;
    fin;
    fin;
fin;

define-nueva-instruccion coge (r) como inicio
    mientras junto-a-zumbador hacer
      inicio
      coge-zumbador;
      coge (sucede(r));
      fin;
      avanza;
    si no junto-a-zumbador entonces
    inicio
    gira-izquierda;
    gira-izquierda;
    mientras frente-libre hacer
    avanza;
    gira-izquierda;
    si frente-bloqueado entonces
    inicio
    gira-izquierda;
    avanza;
    gira-izquierda;
    mientras frente-libre hacer
    avanza;
    gira-izquierda;
    mientras frente-libre hacer
    avanza;
    repetir r veces
    deja-zumbador;
    mientras algun-zumbador-en-la-mochila hacer
    deja-zumbador;
    irdosven;
    fin;
    si frente-libre entonces
    avanza;
    gira-izquierda;
    coge(r);
    fin;
fin;

define-nueva-instruccion irunoven como inicio
    mientras derecha-libre hacer
    avanza;
    mientras derecha-bloqueada hacer
    avanza;
    repetir 3 veces
    gira-izquierda;
    avanza;
    repetir 3 veces
    gira-izquierda;
    avanza;
    gira-izquierda;
    gira-izquierda;
    coge(0);
fin;



    inicia-ejecucion
        irunoven;
        apagate;
    termina-ejecucion
finalizar-programa

