Lo has creado tu? Me parece muchísimo código para un juego con mecánicas tan sencillas. Pero si funciona dpm.
Para la funcion que preguntas yo lo haría de la siguiente forma:
Declarar variable static y darle valor 0;
Dentro de la funcion la primera instruccion es sumarle a la variable +1 para que deje de valer 0;
En la llamada a la funcion desde main, en el bucle del juego, esta la metes dentro de un if:
if (condicionDeLlamada igual a true y variableStatic igual a cero)
{
funcion();
}
Bastante sencillo y pocas lineas.
Ahora, para el contenido de la funcion, simplemente usa la funcion rand();
Puedes modificar los parametros y hacer operaciones con el resultado de rand() para que te de un numero de una casilla.
Ponle de semilla a la funcion, la hora local del sistema. La funcion es srand() que viene de seedrandom es decir "semilla aleatoria". Esto es para que el programa utilice un numero para generarte otro pseudoaleatorio. Al meterle la hora local siempre va a tener un valor distinto. Ya que la hora locak cambia cada rato.
Cuando se cumpla la condicion para llamar a esta funcion simplemente ponle a una variable global a la que le asignaste false en la declaración, el valor true al complirse la condicion.
Despues con un AND en el if dices que si la variable es true y la variable static es igual a 0 se realice la llamada a la funcion.
Despues dentro de la funcion le sumas 1 para que nunca se vuelvan a cumplir las 2 condiciones. Por lo que nunca se volvera a llamar a la funcion. Solo esa primera vez que la variable static contador valia 0.
PD: No se si tienes más dudas, no entiendo los codigos sin mirarlos miy detenidamente. Asique no puedo decirte nada del programa sin ejecutarlo y estoy desde el movil. A cerca de dudas, problemas y trozos de codigo si puedo ayudarte. Pero con todo el programa a la vez sin pararme a buscar para que se usa cada variable, cada funcion etc no.
Por eso mismo yo pongo nombres exageradamente largos de todos los codigos que hago en plan:
p_haciaTerceraLetraDeStringMiNombre;
si no es un coñazo mirar todo el programa y buscar el puntero en 50 sitios para encontrarlo dentro de un for y tener que mirar todo el funcionamiento para sacar algo sencillo.
A parte puedes usar los codigos geshi en el foro para meter el codigo dentro y que se vea el codigo en colores como en el ide.
Dale a editar mensaje y ponlo, así será más agradable de leer.