iniciar-programa
 define-nueva-instruccion norte como mientras no orientado-al-norte hacer gira-izquierda;
 define-nueva-instruccion sur como mientras no orientado-al-sur 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 juntar como
    inicio
        si orientado-al-norte entonces
            inicio
                mientras junto-a-zumbador hacer
                    inicio
                        coge-zumbador;
                        avanza;
                    fin;
                si no-junto-a-zumbador entonces
                    inicio
                        sur;
                        mientras frente-libre hacer avanza;
                        si frente-bloqueado entonces
                            inicio
                                este;
                                si frente-libre entonces
                                    inicio
                                        avanza;
                                        norte;
                                        juntar;
                                    fin;
                                si frente-bloqueado entonces sal-de-instruccion;

                            fin;
                    fin;
            fin;
    fin;

    define-nueva-instruccion ira11 como
        inicio
            sur;
            mientras frente-libre hacer avanza;
            si frente-bloqueado entonces
                inicio
                    oeste;
                     mientras frente-libre hacer avanza;
                     este;
                fin;
        fin;
    define-nueva-instruccion hacer-pared como
        inicio
            si algun-zumbador-en-la-mochila entonces
                inicio

                    mientras frente-libre y algun-zumbador-en-la-mochila hacer
                        inicio
                            deja-zumbador;
                            avanza;
                        fin;
                    si frente-bloqueado y orientado-al-este entonces
                        inicio
                            deja-zumbador;
                            norte;
                            avanza;
                            oeste;
                            hacer-pared;
                        fin;

                    si frente-bloqueado y orientado-al-oeste entonces
                        inicio
                            deja-zumbador;
                            norte;
                            avanza;
                            este;
                            hacer-pared;
                        fin;

                fin;
        fin;
    inicia-ejecucion
        norte;
        juntar;
        ira11;
        hacer-pared;
        apagate;
    termina-ejecucion
finalizar-programa

