iniciar-programa
define-nueva-instruccion ala-pared como
    inicio
        mientras frente-libre hacer
            inicio
                avanza;
            fin;
    fin;
define-nueva-instruccion voltea como
    inicio
        gira-izquierda;
        gira-izquierda;
    fin;
define-nueva-instruccion gira-derecha como
    inicio
        gira-izquierda;
        gira-izquierda;
        gira-izquierda;
    fin;
define-nueva-instruccion orientate-al-norte como
    inicio
        mientras no-orientado-al-norte hacer
            inicio
                gira-izquierda;
            fin;
    fin;
define-nueva-instruccion orientate-al-sur como
    inicio
        mientras no-orientado-al-sur hacer
            inicio
                gira-izquierda;
            fin;
    fin;
define-nueva-instruccion orientate-al-este como
    inicio
        mientras no-orientado-al-este hacer
            inicio
                gira-izquierda;
            fin;
    fin;
define-nueva-instruccion orientate-al-oeste como
    inicio
        mientras no-orientado-al-oeste hacer
            inicio
                gira-izquierda;
            fin;
    fin;
define-nueva-instruccion recoge-zumbadores como
    inicio
        mientras junto-a-zumbador hacer
            inicio
                coge-zumbador;
            fin;
    fin;
define-nueva-instruccion recoge-calcetines como
    inicio
        si frente-libre entonces
            inicio
                si no-junto-a-zumbador entonces
                    inicio
                        avanza;
                        recoge-calcetines;
                    fin
                sino
                    inicio
                        recoge-zumbadores;
                        orientate-al-oeste;
                        ala-pared;
                        orientate-al-sur;
                        ala-pared;
                        orientate-al-este;
                        mientras algun-zumbador-en-la-mochila hacer
                            inicio
                                deja-zumbador;
                                avanza;
                            fin;
                        voltea;
                        ala-pared;
                        orientate-al-norte;
                        avanza;
                        recoge-calcetines;
                    fin;
            fin
        sino
            inicio
                si no-junto-a-zumbador entonces
                    inicio
                        si orientado-al-norte entonces
                            inicio
                                gira-derecha;
                                si frente-libre entonces
                                    inicio
                                        avanza;
                                        gira-derecha;
                                        recoge-calcetines;
                                    fin
                                sino
                                    inicio
                                        orientate-al-oeste;
                                        ala-pared;
                                        orientate-al-sur;
                                        ala-pared;
                                        orientate-al-este;
                                    fin;
                            fin
                        sino
                            inicio
                                gira-izquierda;
                                si frente-libre entonces
                                    inicio
                                        avanza;
                                        gira-izquierda;
                                        recoge-calcetines;
                                    fin
                                sino
                                    inicio
                                        orientate-al-oeste;
                                        ala-pared;
                                        orientate-al-sur;
                                        ala-pared;
                                        orientate-al-este;
                                    fin;
                            fin;
                    fin
                sino
                    inicio
                       recoge-zumbadores;
                       orientate-al-oeste;
                       ala-pared;
                       orientate-al-sur;
                       ala-pared;
                       orientate-al-este;
                       mientras algun-zumbador-en-la-mochila hacer
                            inicio
                                deja-zumbador;
                                avanza;
                            fin;
                       voltea;
                       ala-pared;
                       orientate-al-norte;
                       avanza;
                       recoge-calcetines;
                    fin;
            fin;
    fin;
define-nueva-instruccion ordena-pares como
    inicio
        si junto-a-zumbador entonces
            inicio
                mientras junto-a-zumbador hacer
                    inicio
                        coge-zumbador;
                        avanza;
                    fin;
                voltea;
                avanza;
                si junto-a-zumbador entonces
                    inicio
                        mientras frente-libre hacer
                            inicio
                                coge-zumbador;
                                avanza;
                            fin;
                        si junto-a-zumbador entonces
                            inicio
                                coge-zumbador;
                            fin;
                        orientate-al-este;
                        ala-pared;
                        orientate-al-norte;
                        avanza;
                        mientras algun-zumbador-en-la-mochila hacer
                            inicio
                                deja-zumbador;
                            fin;
                        voltea;
                        avanza;
                        orientate-al-oeste;
                        ala-pared;
                        voltea;
                        ordena-pares;
                    fin
                sino
                    inicio
                        ala-pared;
                        orientate-al-norte;
                        avanza;
                        deja-zumbador;
                        voltea;
                        avanza;
                        orientate-al-este;
                        ala-pared;
                        orientate-al-norte;
                        avanza;
                        mientras algun-zumbador-en-la-mochila hacer
                            inicio
                                deja-zumbador;
                            fin;
                        voltea;
                        avanza;
                        orientate-al-oeste;
                        ala-pared;
                        voltea;
                        ordena-pares;
                    fin;
            fin
        sino
            inicio
                orientate-al-norte;
                avanza;
                mientras junto-a-zumbador hacer
                    inicio
                        coge-zumbador;
                    fin;
                voltea;
                avanza;
                mientras algun-zumbador-en-la-mochila hacer
                    inicio
                        deja-zumbador;
                    fin;
                apagate;
            fin;
    fin;
inicia-ejecucion
orientate-al-norte;
recoge-calcetines;
ordena-pares;
termina-ejecucion
finalizar-programa