iniciar-programa
define-nueva-instruccion pasa(n) como
inicio
        si junto-a-zumbador entonces
        inicio
                coge-zumbador;
                pasa(sucede(n));
        fin
        sino
        inicio
                repetir n veces deja-zumbador;
                avanza;
                repetir n veces deja-zumbador;
        fin;
fin;
define-nueva-instruccion cambio(n) como
inicio
         si junto-a-zumbador entonces
         inicio
                 coge-zumbador;
                 cambio(sucede(n));
         fin
         sino
         inicio
                 avanza;
                 repetir 2 veces gira-izquierda;
                 pasa(0);
                 repetir 2 veces
                 gira-izquierda;
                 avanzA;
                 repetir 2 veces gira-izquierda;
                 mientras junto-a-zumbador hacer coge-zumbador;
                 repetir n veces
                 deja-zumbador;
         fin;
fin;
    inicia-ejecucion
      mientras algun-zumbador-en-la-mochila hacer
      inicio
          avanza;
          si no-junto-a-zumbador entonces
          inicio
              repetir 2 veces
              gira-izquierda;
              avanza;
              repetir 3 veces
              gira-izquierda;
              avanza;
              avanza;
              repetir 2 veces gira-izquierda;
              pasa(0);
              apagate;
          fin;
          repetir 2 veces gira-izquierda;
          avanza;
          repetir 2 veces gira-izquierda;
          mientras frente-libre y junto-a-zumbador hacer
          inicio
                avanza;
                gira-izquierda;
                pasa(0);
                repetir 2 veces
                inicio
                    gira-izquierda;
                    avanza;
                fin;
                repetir 2 veces
                gira-izquierda;
                pasa(0);
                repetir 3 veces
                gira-izquierda;
                mientras junto-a-zumbador hacer
                inicio
                        coge-zumbador;
                        avanza;
                        si junto-a-zumbador entonces
                        coge-zumbador;
                        repetir 2 veces gira-izquierda;
                        avanzA;
                        repetir 2 veces gira-izquierda;
                fin;
                avanza;
                si junto-a-zumbador entonces
                inicio
                        mientras junto-a-zumbador hacer
                        coge-zumbador;
                       repetir 3 veces gira-izquierda;
                       avanza;
                       repetir 3 veces gira-izquierda;
                       cambio(0);
                       repetir 2 veces gira-izquierda;
                       si frente-libre entonces avanza;
                       repetir 2 veces gira-izquierda;
                fin
                sino
                inicio
                        repetir 3 veces gira-izquierda;
                        avanzA;
                        gira-izquierda;
                fin;
          fin;
          repetir 2 veces gira-izquierda;
          si  no-junto-a-zumbador entonces
          avanza;
          pasa(0);
          repetir 2 veces gira-izquierda;
          avanza;
          repetir 2 veces
          gira-izquierda;
          mientras junto-a-zumbador hacer coge-zumbador;
          avanza;
          repetir 3 veces gira-izquierda;
          pasa(0);
          pasa(0);
          gira-izquierda;
          mientras junto-a-zumbador y frente-libre hacer
          inicio
                coge-zumbador;
                mientras frente-libre hacer avanzA;
                deja-zumbador;
                gira-izquierda;
                avanza;
                gira-izquierda;
                mientras no junto-a-zumbador hacer avanza;
                gira-izquierda;
                avanza;
                gira-izquierda;
          fin;
          gira-izquierda;
          avanza;
          mientras junto-a-zumbador hacer
          coge-zumbador;
          avanza;
          repetir 3 veces gira-izquierda;
          mientras frente-libre hacer
          avanza;
          repetir 2 veces gira-izquierda;
      fin;
      apagate;
    termina-ejecucion
finalizar-programa
