No molestas, de eso van los foros, de hacer preguntas y responderlas.
Siento no haber sido claro. Lo intentaré de nuevo.
La funcion que quieres crear, dices que solo quieres que se ejecute una vez. Para eso declaramos una variable global static:
static int vecesQueSeEjecutoLaFuncionAtaqueAereoEspecial = 0;
Tambien vamos a usar una variable booleana para saber si se ha cumplido la condicion que queremos que se cumpla para realizar el ataque aereo especial.
bool llamarALaFuncionAtaqueAereoEspecial = false;
Ahora necesitamos la condicion para llamar a la funcion AtaqueAereoEspecial.
if (fila[y] == 'Z' && columna[y] == 99)
{
llamarALaFuncionAtaqueAereoEspecial = true;
}
Dentro del bucle del juego haremos la llamada a la funcion, si nunca antes se ha llamado, y si la condicion se cumple:
if (vecesQueSeEjecutoLaFuncionAtaqueAereoEspecial ==0 && llamarALaFuncionAtaqueAereoEspecial == true)
{
AtaqueAereoEspecial();
}
Por ultimo creamos la funcion:
void AtaqueAereoEspecial()
{
vecesQueSeEjecutoLaFuncionAtaqueAereoEspecial++;
/*Aqui le metes la hora local usando la biblioteca time y srand();
Aqui generas el numero aleatorio con rand(); y elijes entre que valores quieres que esté el numero generado. Si tienes 10 columnas y 10 filas, le indicas que te de un numero entre 1 y 10 para las columnas.
Aqui vuelves a llamar a rand(); para generar un numero aleatorio entre 1 y 10 para las filas.
Aqui llamas a la funcion que tengas para realizar el ataque en la columna y la fila aleatoria.
}
Aqui tienes ejemplos del uso de rand y srand en C https://www.aprenderaprogramar.com/index.php?option=com_content&view=article&id=917:generar-numeros-o-secuencias-aleatorios-en-c-intervalos-srand-y-rand-time-null-randmax-cu00525f&catid=82&Itemid=210