iniciar-programa
define-nueva-instruccion comprueba como inicio
    repetir 3 veces gira-izquierda;
    avanza;
    si no junto-a-zumbador entonces inicio
        repetir 2 veces gira-izquierda;
        avanza;
        repetir 3 veces gira-izquierda;
    fin;
fin;
define-nueva-instruccion cuenta-conejo(b) como inicio
     si junto-a-zumbador entonces inicio
         coge-zumbador;
         cuenta-conejo(sucede(b));
     fin;

     si no junto-a-zumbador entonces inicio
         repetir 2 veces avanza;
         repetir 3 veces gira-izquierda;
         mientras no-junto-a-zumbador y frente-libre hacer avanza;
         coge-zumbador;
         repetir b veces inicio
             si frente-libre entonces avanza;
         fin;
         deja-zumbador;
         si junto-a-zumbador entonces inicio
             comprueba;
                 si no orientado-al-sur entonces inicio
                 repetir 2 veces gira-izquierda;
                 mientras frente-libre hacer avanza;
                 gira-izquierda;
                 repetir 2 veces avanza;
                 repetir b veces deja-zumbador;
                 avanza;
                 repetir 2 veces gira-izquierda;
             fin;
         fin;
     fin;


fin;
define-nueva-instruccion cuentatortuga(a) como inicio
     si junto-a-zumbador entonces inicio
         coge-zumbador;
         cuentatortuga(sucede(a));
     fin;
     Si no-junto-a-zumbador entonces inicio
         repetir 2 veces avanza;
         repetir 3 veces gira-izquierda;
         mientras no junto-a-zumbador hacer avanza;
         si junto-a-zumbador entonces inicio
             coge-zumbador;
             repetir a veces inicio
                 si frente-libre entonces avanza;
             fin;
             deja-zumbador;
             repetir 2 veces gira-izquierda;
             mientras frente-libre hacer avanza;
             gira-izquierda;
             repetir 2 veces avanza;
             repetir a veces deja-zumbador;
             repetir 2 veces gira-izquierda;
             avanza;
         fin;


     fin;
fin;

define-nueva-instruccion cuentapasos(c) como inicio
    mientras orientado-al-norte hacer inicio
        cuentatortuga(0);
        cuenta-conejo(0);
        cuentapasos(sucede(c));
    fin;
    si orientado-al-sur entonces inicio
        mientras frente-libre hacer avanza;
        repetir 3 veces gira-izquierda;
        mientras frente-libre hacer avanza;
        repetir c veces deja-zumbador;
    fin;
fin;

    inicia-ejecucion
    repetir 4 veces avanza;
    deja-zumbador;
    repetir 2 veces gira-izquierda;
    repetir 3 veces avanza;
    repetir 2 veces gira-izquierda;

    cuentapasos(0);
        apagate;
    termina-ejecucion
finalizar-programa
