iniciar-programa
define-nueva-instruccion gira(n) como inicio
repetir n veces gira-izquierda;
fin;
define-nueva-instruccion tomate(n) como inicio
si junto-a-zumbador entonces inicio
coge-zumbador;
tomate(sucede(n));
fin
sino inicio
repetir n veces inicio
deja-zumbador;
fin;
gira(2);
avanza;
repetir n veces inicio
deja-zumbador;
fin;
fin;
fin;

define-nueva-instruccion cuento como inicio
gira(2);
si frente-libre entonces inicio
avanza;
tomate(0);
fin
sino inicio
gira(2);
fin;
gira(3);
si frente-libre entonces inicio
avanza;
tomate(0);
fin
sino inicio
gira(1);
fin;
fin;



    inicia-ejecucion
    mientras no-orientado-al-este hacer inicio
    gira-izquierda;
    fin;
    mientras junto-a-zumbador hacer inicio
    coge-zumbador;
    fin;


    deja-zumbador;

     mientras derecha-libre y frente-bloqueado hacer inicio
   gira(3);
   avanza;
   gira(2);
   avanza;
   tomate(0);
   gira(1);
   fin;

    mientras frente-libre hacer inicio
       si frente-libre entonces inicio
    avanza;
    fin;
    mientras junto-a-zumbador hacer inicio
    coge-zumbador;
    fin;
    gira(3);
   cuento;
   si frente-bloqueado entonces inicio
   gira(2);
   mientras frente-libre hacer inicio
   avanza;
   fin;
   gira(2);
   mientras derecha-bloqueada hacer inicio
   si frente-libre entonces inicio
   avanza;
   fin
   sino inicio
   apagate;
   fin;
   fin;
   gira(3);
   avanza;
   mientras junto-a-zumbador hacer inicio
   coge-zumbador;
   fin;
   gira(2);
   avanza;
   tomate(0);
   gira(1);
   mientras derecha-libre y frente-bloqueado hacer inicio
   gira(3);
   avanza;
   mientras junto-a-zumbador hacer inicio
   coge-zumbador;
   fin;
   gira(2);
   avanza;
   tomate(0);
   gira(1);
   fin;

   fin;
    fin;

        apagate;
    termina-ejecucion
finalizar-programa
