iniciar-programa

define-nueva-instruccion comprueva(z) como inicio
   si no si-es-cero (z) y junto-a-zumbador entonces inicio
       coge-zumbador;
       comprueva(precede(z));
   fin sino inicio
       si no junto-a-zumbador y no si-es-cero(z) entonces inicio
           deja-zumbador;
       fin;
   fin;
fin;

define-nueva-instruccion busca(x) como inicio
        mientras orientado-al-este hacer inicio
             comprueva(x);
             si junto-a-zumbador entonces inicio
             mientras junto-a-zumbador hacer coge-zumbador;
                 si frente-libre entonces inicio
                     mientras frente-libre hacer avanza;
                     repetir 3 veces gira-izquierda;
                     repetir 4 veces avanza;
                     repetir 3 veces gira-izquierda;
                     mientras junto-a-zumbador hacer avanza;
                     mientras no-orientado-al-norte hacer gira-izquierda;
                 fin sino inicio
                     mientras no-orientado-al-sur hacer gira-izquierda;
                     repetir 4 veces avanza;
                     mientras no-orientado-al-oeste hacer gira-izquierda;
                     mientras junto-a-zumbador hacer avanza;
                     mientras no-orientado-al-sur hacer gira-izquierda;
                 fin;
             fin sino inicio
                     si frente-libre entonces avanza;
                     busca(x);
                     deja-zumbador;
             fin;
     fin;
fin;

define-nueva-instruccion color (x) como inicio
    si junto-a-zumbador entonces inicio
        coge-zumbador;
        color(sucede(x));
    fin sino inicio
           mientras orientado-al-norte hacer inicio
             repetir 4 veces avanza;
             gira-izquierda;
             mientras frente-libre hacer avanza;
             repetir 2 veces gira-izquierda;
             mientras no-junto-a-zumbador hacer avanza;
             busca(x);
         fin;
    fin;
fin;


define-nueva-instruccion ver(z) como inicio
    si no si-es-cero (z) y junto-a-zumbador entonces inicio
        coge-zumbador;
        ver(precede(z));
        deja-zumbador;
    fin sino inicio
        repetir z veces deja-zumbador;
    fin;
fin;

define-nueva-instruccion mayor(x) como inicio
    si junto-a-zumbador entonces inicio
        coge-zumbador;
        mayor(sucede(x));
    fin sino inicio
        avanza;
        ver(x);
    fin;
fin;

define-nueva-instruccion compr como inicio
    repetir 3 veces gira-izquierda;
    mientras junto-a-zumbador y frente-libre hacer avanza;
    repetir 2 veces gira-izquierda;
    si frente-libre entonces avanza;
    mientras frente-libre hacer inicio
        mayor(0);
    fin;
fin;

define-nueva-instruccion resp como inicio
    si junto-a-zumbador entonces inicio
        coge-zumbador;
        resp;
        deja-zumbador;
    fin sino inicio
        repetir 2 veces gira-izquierda; 
        mientras frente-libre hacer avanza;
        gira-izquierda;
        avanza;
   fin;
fin;



    inicia-ejecucion              
    avanza;
    color(0);
    compr;
    resp;
        apagate;
    termina-ejecucion
finalizar-programa
