iniciar-programa
 define-nueva-instruccion da-media-vuelta como inicio
     repetir 2 veces gira-izquierda;
 fin;
 define-nueva-instruccion gira-derecha como inicio
     repetir 3 veces gira-izquierda;
 fin;
 define-nueva-instruccion regresa como inicio
     da-media-vuelta;
     mientras frente-libre hacer inicio
         avanza;
     fin;
     da-media-vuelta;
     fin;
 define-nueva-instruccion cruza como inicio
     gira-izquierda;
     si frente-bloqueado entonces inicio
         gira-izquierda;
         mientras frente-libre hacer inicio
             avanza;
         fin;
         gira-izquierda;
         mientras frente-libre y derecha-bloqueada hacer inicio
             mientras no-junto-a-zumbador hacer inicio
                 si frente-libre entonces inicio
                     avanza;
                 fin sino apagate;
             fin;
             mientras junto-a-zumbador hacer inicio
                 coge-zumbador;
             fin;
         fin;
         apagate;
     fin sino avanza;
     gira-izquierda;
 fin;
    inicia-ejecucion
    mientras ningun-zumbador-en-la-mochila hacer inicio
        mientras junto-a-zumbador hacer inicio
            avanza;
        fin;
        mientras no-junto-a-zumbador hacer inicio
            si frente-bloqueado entonces inicio
                regresa;
                mientras junto-a-zumbador hacer inicio
                    mientras junto-a-zumbador hacer inicio
                        coge-zumbador;
                    fin;
                    deja-zumbador;
                    avanza;
                fin;
                mientras frente-libre hacer inicio
                    avanza;
                fin;
                mientras algun-zumbador-en-la-mochila hacer inicio
                    deja-zumbador;
                fin;
                da-media-vuelta;
                mientras frente-libre hacer inicio
                    avanza;
                fin;
                cruza;
            fin sino
                avanza;
        fin;
        mientras junto-a-zumbador hacer inicio
            coge-zumbador;
        fin;
        regresa;
        mientras algun-zumbador-en-la-mochila hacer inicio
            deja-zumbador;
            avanza;
        fin;
    fin;
        apagate;
    termina-ejecucion
finalizar-programa
