iniciar-programa
 define-nueva-instruccion norte como mientras no orientado-al-norte hacer gira-izquierda;
 define-nueva-instruccion este como mientras no orientado-al-este hacer gira-izquierda;
 define-nueva-instruccion oeste como mientras no orientado-al-oeste hacer gira-izquierda;
 define-nueva-instruccion sur como mientras no orientado-al-sur hacer gira-izquierda;

  define-nueva-instruccion buscar como
     inicio
        mientras frente-libre hacer
            inicio
                si no-junto-a-zumbador entonces avanza;
                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;
                                       apagate;
                                   fin
                                   sino
                                       inicio
                                           repetir 2 veces deja-zumbador;
                                           si frente-libre entonces avanza
                                           sino
                                               inicio
                                                    sur;
                                                    mientras frente-libre hacer avanza;
                                                    este;
                                                    avanza;
                                                    norte;
                                                    buscar;
                                               fin;
                                       fin;
                            fin
                            sino
                                inicio
                                    deja-zumbador;
                                    si frente-libre entonces avanza
                                    sino
                                        inicio
                                             sur;
                                             mientras frente-libre hacer avanza;
                                            este;
                                            avanza;
                                            norte;
                                            buscar;
                                        fin;
                                fin;
                    fin;
            fin;
        si frente-bloqueado 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;
                                       apagate;
                                   fin
                                   sino
                                       inicio
                                           repetir 2 veces deja-zumbador;
                                       fin;
                              fin
                              sino deja-zumbador;
                     fin;

                sur;
                mientras frente-libre hacer avanza;
                este;
                avanza;
                norte;
                buscar;
            fin;
    fin;

define-nueva-instruccion junto como
    inicio
        si frente-bloqueado y derecha-bloqueada entonces apagate;
    fin;

    inicia-ejecucion
        sur;
        mientras frente-libre hacer avanza;
        oeste;
        mientras frente-libre hacer avanza;
        norte;
        junto;
        buscar;
        apagate;
    termina-ejecucion
finalizar-programa
