iniciar-programa

        define-nueva-instruccion media-vuelta como inicio
            gira-izquierda;
            gira-izquierda;
        fin;

        define-nueva-instruccion este como inicio
            mientras no-orientado-al-este hacer inicio
                gira-izquierda;
            fin;
         fin;


        define-nueva-instruccion cuenta2(n) como inicio
            si junto-a-zumbador entonces inicio
                coge-zumbador;
               cuenta2(n);
                si frente-libre entonces inicio
                      avanza;
                 fin;
            fin sino inicio

                    cuenta2(sucede(n));
            fin;
        fin;

        define-nueva-instruccion camina(n) como inicio
                si junto-a-zumbador entonces inicio
                    coge-zumbador;
                    camina(sucede(n));
                fin sino inicio
                    repetir n veces inicio
                       si frente-libre entonces inicio
                           avanza;
                       fin;
                   fin;
                fin;
          fin;


        define-nueva-instruccion cuenta(n) como inicio
            si no-junto-a-zumbador entonces inicio
                deja-zumbador;
               si frente-libre entonces inicio
                   avanza;
               fin;
               cuenta(sucede(n));
            fin sino inicio
                si frente-libre entonces inicio
                    avanza;
                    cuenta(n);
                fin sino inicio
                    media-vuelta;
                    mientras junto-a-zumbador y frente-libre hacer inicio
                         avanza;
                    fin;
                  si no-junto-a-zumbador entonces inicio
                    repetir n veces inicio
                        deja-zumbador;
                    fin;
                  fin;
                fin;
            fin;
        fin;

        define-nueva-instruccion contar(n) como inicio
            si junto-a-zumbador entonces inicio
                camina(0);
                contar(sucede(n));
            fin sino inicio
                repetir sucede(n) veces inicio
                    deja-zumbador;
                fin;
            fin;
        fin;




    inicia-ejecucion
      este;
      contar(0);


        apagate;
    termina-ejecucion
finalizar-programa
