iniciar-programa

    define-nueva-instruccion norte como inicio

        mientras no-orientado-al-norte hacer inicio
          gira-izquierda;
      fin;
    fin;


    define-nueva-instruccion este como inicio

        mientras no-orientado-al-este hacer inicio
          gira-izquierda;
      fin;
    fin;


    define-nueva-instruccion oeste como inicio

        mientras no-orientado-al-oeste hacer inicio
          gira-izquierda;
      fin;
    fin;

    define-nueva-instruccion sur como inicio

        mientras no-orientado-al-sur hacer inicio
          gira-izquierda;
      fin;
    fin;


    define-nueva-instruccion camina como inicio

        avanza;
        si no-junto-a-zumbador entonces inicio

            si orientado-al-norte entonces inicio

                este;
                avanza;
                sur;
                avanza;
             fin sino inicio
                 este;
                 avanza;
                 norte;
                 avanza;
            fin;

        fin;

    fin;


    define-nueva-instruccion ir11 como inicio
        sur;
        mientras frente-libre hacer inicio
            avanza;

        fin;
        oeste;

        mientras frente-libre hacer inicio
            avanza;

        fin;

    fin;

    define-nueva-instruccion dejar1(n) como inicio

        ir11;
        repetir n veces inicio
            deja-zumbador;
        fin;
        este;
        avanza;
        mientras algun-zumbador-en-la-mochila hacer inicio

            deja-zumbador;

        fin;
    fin;

    define-nueva-instruccion cuenta(n) como inicio

        si junto-a-zumbador entonces inicio

                coge-zumbador;
                si junto-a-zumbador entonces inicio

                    camina;
                    cuenta(n);
                fin sino inicio
                        camina;
                        cuenta(sucede(n));
                fin;
        fin sino inicio
                dejar1(n);
        fin;
    fin;


    inicia-ejecucion
        avanza;
        cuenta(0);
        apagate;
    termina-ejecucion
finalizar-programa
