iniciar-programa
define-nueva-instruccion deja-flechas (x) como
    inicio
        si junto-a-zumbador entonces
            inicio
                repetir 2 veces coge-zumbador;
                deja-flechas (sucede(x));
            fin
         sino
             inicio
             repetir x veces deja-zumbador;
             apagate;
             fin;
    fin;
define-nueva-instruccion norte  como
        inicio
            mientras derecha-libre  hacer
            inicio
            si junto-a-zumbador entonces
                inicio
                    coge-zumbador;
                    si junto-a-zumbador entonces
                        inicio
                            coge-zumbador;
                            si frente-libre entonces avanza;

                        fin
                    sino
                        inicio
                            deja-zumbador;
                            repetir 2 veces gira-izquierda;
                            repetir 3 veces avanza;
                            gira-izquierda;
                            repetir 2 veces avanza;

                            sal-de-instruccion;
                        fin;

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

                        fin
                    sino
                        inicio
                            deja-zumbador;
                            repetir 2 veces gira-izquierda;
                            avanza;
                            gira-izquierda;
                            avanza;

                            sal-de-instruccion;
                        fin;

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

                        fin
                    sino
                        inicio
                            deja-zumbador;
                            repetir 2 veces gira-izquierda;
                            avanza;
                            gira-izquierda;
                            avanza;

                            sal-de-instruccion;
                        fin;

                fin
                    sino avanza;
             fin;
        fin;

    define-nueva-instruccion este como
        inicio
        mientras derecha-libre hacer
            inicio
            si junto-a-zumbador entonces
                inicio
                    coge-zumbador;
                    si junto-a-zumbador entonces
                        inicio
                            coge-zumbador;
                            si frente-libre entonces avanza;

                        fin
                    sino
                        inicio
                            deja-zumbador;
                            repetir 2 veces gira-izquierda;
                            avanza;
                            gira-izquierda;
                            avanza;

                            sal-de-instruccion;
                        fin;

                fin
                    sino avanza;
             fin;
        fin;
    define-nueva-instruccion revisa-fin como
        inicio
            si frente-libre entonces
                inicio
                    avanza;
                    si junto-a-zumbador entonces
                        inicio
                            coge-zumbador;
                            si no-junto-a-zumbador entonces
                                inicio
                                    deja-zumbador;
                                    repetir 2 veces gira-izquierda;
                                    avanza;
                                    si junto-a-zumbador entonces repetir 2 veces coge-zumbador;
                                    mientras algun-zumbador-en-la-mochila hacer deja-zumbador;
                                    deja-flechas (0);
                                fin
                            sino
                                inicio
                                    deja-zumbador;
                                    repetir 2 veces gira-izquierda;
                                    avanza;
                                    repetir 2 veces gira-izquierda;
                                fin;
                        fin;
                fin;
        fin;
    inicia-ejecucion
    mientras frente-libre hacer
        inicio
            revisa-fin;
            este;
            sur;
            oeste;
            norte;
        fin;
        apagate;
    termina-ejecucion
finalizar-programa
