iniciar-programa
define-nueva-instruccion mv como
inicio
repetir 2 veces gira-izquierda;
fin;

define-nueva-instruccion gd como
inicio
repetir 3 veces gira-izquierda;
fin;

define-nueva-instruccion come como
inicio
si junto-a-zumbador entonces
inicio
coge-zumbador;
come;
avanza;
fin
sino
inicio
mv;
mientras frente-libre hacer avanza;
gira-izquierda;
mientras frente-libre hacer avanza;
gira-izquierda;
fin;
fin;

define-nueva-instruccion deja como
inicio
si junto-a-zumbador entonces
inicio
coge-zumbador;
fin
sino
inicio
deja-zumbador;
fin;
mv;
mientras frente-libre hacer avanza;
gd;
avanza;
gd;
fin;

define-nueva-instruccion barre como
inicio
mientras izquierda-libre hacer
inicio
mientras frente-libre hacer
inicio
si no-junto-a-zumbador entonces avanza;
si junto-a-zumbador entonces
inicio
come;
deja;
fin;
fin;
si junto-a-zumbador entonces
inicio
come;
deja;
fin
sino
inicio
mv;
mientras frente-libre hacer avanza;
gd; avanza; gd;
fin;
fin;
mientras frente-libre hacer
inicio
si no-junto-a-zumbador entonces avanza;
si junto-a-zumbador entonces
inicio
come;
deja;
gira-izquierda;
mientras frente-libre hacer avanza;
gd;
fin;
fin;
si junto-a-zumbador entonces
inicio
come;
deja;
fin
sino
inicio
mv;
mientras frente-libre hacer avanza;
gira-izquierda;
mientras frente-libre hacer avanza;
fin;
fin;

define-nueva-instruccion bye como
inicio
si frente-libre entonces
inicio
si junto-a-zumbador entonces
inicio
coge-zumbador;
bye;
deja-zumbador;
fin
sino
inicio
avanza;
bye;
fin;
fin;
fin;



    inicia-ejecucion
    mientras no-orientado-al-norte hacer gira-izquierda;
    avanza;
    gd;
   barre;
   si orientado-al-sur entonces
   inicio
   gira-izquierda;
   fin
   sino
   inicio
   gd;
   avanza;
   gira-izquierda;
   fin;
   mientras frente-libre hacer avanza;
   mv;
   bye;
        apagate;
    termina-ejecucion
finalizar-programa
