iniciar-programa
    define-nueva-instruccion dos(t) como
    inicio
        si no si-es-cero(t) entonces
        inicio
            si junto-a-zumbador entonces
            inicio
                coge-zumbador;
                dos(precede(t));
            fin;
        fin;
      
    fin;
    define-nueva-instruccion busk(k) como
    inicio
    si no si-es-cero(k) entonces inicio
        si junto-a-zumbador entonces
        inicio
            coge-zumbador;
            si junto-a-zumbador entonces
            inicio
                coge-zumbador;
                si junto-a-zumbador entonces
                inicio
                    repetir 2 veces deja-zumbador;
                    si orientado-al-sur entonces
                    inicio
                                    gira-izquierda;
                                    avanza;
                                    si junto-a-zumbador entonces
                                    inicio
                                    dos(precede(k));
                                    fin;
                                    repetir k veces deja-zumbador;
                                    si junto-a-zumbador entonces coge-zumbador;
                                    repetir 2 veces gira-izquierda;
                                    avanza;
                                    gira-izquierda;
                    fin
                    sino
                    inicio
                        si orientado-al-este entonces
                        inicio

                                    avanza;
                                    si junto-a-zumbador entonces
                                    inicio
                                    dos(precede(k));
                                    fin;
                                    repetir k veces deja-zumbador;
                                    si junto-a-zumbador entonces coge-zumbador;
                                    repetir 2 veces gira-izquierda;
                                    avanza;
                                    repetir 2 veces gira-izquierda;
                        fin
                        sino
                        inicio
                            si orientado-al-oeste entonces
                            inicio
                                    repetir 2 veces gira-izquierda;
                                    avanza;
                                    si junto-a-zumbador entonces
                                    inicio
                                    dos(precede(k));
                                    fin;
                                    repetir k veces deja-zumbador;
                                    si junto-a-zumbador entonces coge-zumbador;
                                    repetir 2 veces gira-izquierda;
                                    avanza;

                            fin
                            sino
                            inicio
                                si orientado-al-norte entonces
                                inicio
                                    repetir 3 veces gira-izquierda;
                                    avanza;
                                    si junto-a-zumbador entonces
                                    inicio
                                    dos(precede(k));
                                    fin;
                                    repetir k veces deja-zumbador;
                                    si junto-a-zumbador entonces coge-zumbador;
                                    repetir 2 veces gira-izquierda;
                                    avanza;
                                    repetir 3 veces gira-izquierda;
                                fin;
                            fin;
                        fin;
                    fin;






                fin
                sino
                inicio

                    repetir 4 veces
                    inicio
                        si frente-libre entonces
                        inicio
                            avanza;
                            si no si-es-cero(k) entonces busk(precede(k));
                            repetir 2 veces gira-izquierda;
                            avanza;
                            repetir 2 veces gira-izquierda;

                        fin;
                        gira-izquierda;
                    fin;
                     si no-junto-a-zumbador entonces repetir 2 veces deja-zumbador;
                 fin;
            fin
            sino
            inicio
            repetir 4 veces
            inicio
                si frente-libre entonces
                inicio
                    si junto-a-zumbador entonces coge-zumbador;
                    avanza;
                    busk(k);
                    repetir 2 veces gira-izquierda;
                    avanza;
                    si no-junto-a-zumbador entonces deja-zumbador;
                    repetir 2 veces gira-izquierda;
                fin;
                gira-izquierda;
            fin;
            si no-junto-a-zumbador entonces repetir 2 veces deja-zumbador;
            fin;
        fin;
     fin

    fin;

    define-nueva-instruccion uno(j) como
    inicio
        si junto-a-zumbador entonces
        inicio
            coge-zumbador;
            uno(sucede(j));
        fin
        sino
        inicio

            repetir 3 veces
            inicio
            repetir 2 veces gira-izquierda;
            mientras junto-a-zumbador hacer avanza;
            repetir 2 veces gira-izquierda;
            avanza;
            busk(j);
            fin;
        fin;
        repetir 2 veces gira-izquierda;
        avanza;
        repetir j veces deja-zumbador;
        repetir 2 veces gira-izquierda;
        apagate;
    fin;
    inicia-ejecucion
        uno(0);

        apagate;
    termina-ejecucion
finalizar-programa
