iniciar-programa
define-nueva-instruccion vuelta como
inicio
gira-izquierda;
gira-izquierda;
si frente-libre entonces
inicio
avanza;
si no-junto-a-zumbador entonces
deja-zumbador;
gira-izquierda;
gira-izquierda;
avanza;
fin
sino
inicio
gira-izquierda;
gira-izquierda;
fin;
fin;


define-nueva-instruccion pocision como
inicio
mientras no-orientado-al-oeste hacer
gira-izquierda;
mientras frente-libre hacer
avanza;
mientras no-orientado-al-sur hacer
gira-izquierda;
mientras frente-libre hacer
avanza;
mientras no-orientado-al-norte hacer
gira-izquierda;
fin;

define-nueva-instruccion rellena como
inicio
 mientras frente-libre o orientado-al-norte hacer
inicio
mientras frente-libre  hacer
inicio
si junto-a-zumbador entonces
inicio
coge-zumbador;
    si junto-a-zumbador entonces
    inicio
    vuelta;
    gira-izquierda;
    vuelta;
    gira-izquierda;
    gira-izquierda;
    vuelta;
    gira-izquierda;
    si frente-libre entonces
    inicio
    avanza;
    si no-junto-a-zumbador entonces
    deja-zumbador;
    fin;
    fin
    sino
    inicio
    deja-zumbador;
    fin;
    fin;
si junto-a-zumbador entonces
inicio
    coge-zumbador;
    si no-junto-a-zumbador entonces
    inicio
    deja-zumbador;
    si frente-libre entonces
    avanza;
    fin
    sino
    inicio
    deja-zumbador;
    fin;
fin
sino
inicio
avanza;
fin;
fin;

mientras no-orientado-al-este hacer
gira-izquierda;
si junto-a-zumbador entonces
        inicio
        coge-zumbador;
        si junto-a-zumbador entonces
        inicio
            vuelta;
            gira-izquierda;
            vuelta;
            gira-izquierda;
            gira-izquierda;
            vuelta;
            gira-izquierda;
            si frente-libre entonces
            inicio
            avanza;
            si no-junto-a-zumbador entonces
            deja-zumbador;
            gira-izquierda;
            gira-izquierda;
            avanza;
            gira-izquierda;
            gira-izquierda;
        fin;
        fin
        sino
        inicio
        deja-zumbador;
        fin;
fin;

si frente-libre entonces
    inicio
    avanza;
    si derecha-libre entonces
    inicio
    gira-izquierda;
    gira-izquierda;
    gira-izquierda;
    fin
    sino
    gira-izquierda;
    fin;
fin;
fin;
define-nueva-instruccion marca como
inicio
si frente-bloqueado entonces
inicio
gira-izquierda;
gira-izquierda;
gira-izquierda;
mientras frente-libre hacer
inicio
avanza;
si junto-a-zumbador entonces
deja-zumbador;
fin;
fin;

mientras frente-libre hacer
inicio
mientras frente-libre hacer
inicio
si junto-a-zumbador entonces
deja-zumbador;
avanza;
fin;
mientras no-orientado-al-este hacer
gira-izquierda;
si junto-a-zumbador entonces
deja-zumbador;
si frente-libre entonces
    inicio
    avanza;
    si derecha-libre entonces
    inicio
    gira-izquierda;
    gira-izquierda;
    gira-izquierda;
    fin
    sino
    gira-izquierda;
    fin;
fin;
fin;

define-nueva-instruccion cuenta como
inicio
si frente-libre o no-orientado-al-este entonces
inicio
si frente-libre entonces
   inicio
   si junto-a-zumbador entonces
       inicio
       avanza;
       cuenta;
       deja-zumbador;
       fin
       sino
       inicio
       avanza;
       cuenta;
       fin;

   fin
   sino
   inicio
   mientras no-orientado-al-este hacer
   gira-izquierda;
       si junto-a-zumbador entonces
       inicio
       si frente-libre entonces
       inicio
       avanza;
       si derecha-libre entonces
       inicio
       gira-izquierda;
       gira-izquierda;
       gira-izquierda;
       fin
       sino
       inicio
       gira-izquierda;
       fin;
       fin;
       cuenta;
       deja-zumbador;
       fin
           sino
       inicio
           si frente-libre entonces
           inicio
           avanza;
           si derecha-libre entonces
           inicio
           gira-izquierda;
           gira-izquierda;
           gira-izquierda;
           fin
               sino
           inicio
           gira-izquierda;
           fin;
           fin;
       cuenta;
       fin;
   fin;
fin
sino
inicio
pocision;
si junto-a-zumbador entonces
coge-zumbador;
fin;
fin;

define-nueva-instruccion cuenta-veces como
inicio
si junto-a-zumbador entonces
inicio
coge-zumbador;
cuenta-veces;
fin;
si frente-libre entonces
    avanza;
    marca;
    pocision;
    rellena;
    pocision;
    fin;

    inicia-ejecucion
    si junto-a-zumbador entonces
    coge-zumbador;
    cuenta-veces;
    cuenta;



        apagate;
    termina-ejecucion
finalizar-programa
