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 ir11 como
        inicio
           sur;
           mientras frente-libre hacer avanza;
           oeste;
           mientras frente-libre hacer avanza;
        fin;
    define-nueva-instruccion jojo como
        inicio
           este;
           avanza;
           repetir 2 veces deja-zumbador;
           oeste;
           avanza;
        fin;
    define-nueva-instruccion juntar(X) como
        inicio
           mientras orientado-al-norte hacer
               inicio
                  si junto-a-zumbador entonces
                      inicio
                         coge-zumbador;
                         juntar(sucede(X));
                      fin sino
                          inicio
                             si frente-libre entonces avanza sino
                                 inicio
                                    sur;
                                    mientras frente-libre hacer avanza;
                                    este;
                                    si frente-libre entonces
                                        inicio
                                           avanza;
                                           norte;
                                        fin sino ir11;
                                 fin;
                             juntar(0);
                             si si-es-cero (precede(x)) entonces deja-zumbador;
                             si si-es-cero (precede(precede(x))) entonces jojo;
                             si si-es-cero (precede(precede(precede(x)))) entonces
                                inicio
                                   deja-zumbador;
                                   jojo;
                                fin;
                          fin;
               fin;
        fin;
    define-nueva-instruccion destender como
        inicio
           mientras junto-a-zumbador hacer coge-zumbador;
           si orientado-al-oeste entonces
           inicio
           norte;
           mientras algun-zumbador-en-la-mochila hacer
           inicio
           deja-zumbador;
           si frente-libre entonces avanza;
           fin;
           fin sino
               inicio
                  norte;
                  mientras algun-zumbador-en-la-mochila hacer
                  inicio
                  repetir 2 veces deja-zumbador;
                  si frente-libre entonces avanza;
                  fin;
               fin;
        fin;
    inicia-ejecucion
        ir11;
        norte;
        juntar(0);
        destender;
        ir11;
        este;
        avanza;
        destender;
        apagate;
    termina-ejecucion
finalizar-programa
