Salut!
1/ Le domaine de l´intelligence artificielle est assez vaste! et il n´y a pas de solutions miracles ni universelles.
Il faudrait donc que tu précises un peu plus les differentes fonctions que devra remplir celle de ton jeu ( par exemple si c´est un jeu du genre morpion, dames, etc... tu peux aller voir du coté du min-max et de ses optimisations ( il m´a semblé voir trainer de la doc sur www.alrj.org)).
Mais je te conseil d´attendre un peu de maitriser le langage et les differentes structures de données avant de t´y attaquer.
2/ man rand:
RAND(3) Manuel du programmeur Linux RAND(3)
NOM
rand, srand - Générateur de nombres aléatoires.
SYNOPSIS
#include < stdlib.h>
int rand ( void);
void srand ( unsigned int seed);
DESCRIPTION
La fonction rand() renvoie un entier pseudo-aléatoire entre 0 et
RAND_MAX.
La fonction srand() utilise son argument comme " graine" pour la
génération d´une nouvelle séquence de nombres pseudo-aléatoires, qui
seront fournis par rand(). Ces séquences sont reproductibles en
appelant srand() avec la même valeur de graine.
Si aucune graine originale n´est fournie, la fonction rand() commence
en utilisant la valeur 1.
VALEUR RENVOYÉE
La fonction rand() renvoie un nombre entier entre 0 et RAND_MAX. La
fonction srand() ne renvoie aucune valeur.
NOTES
Les versions de rand() et srand() de la bibliothèque C de Linux
utilisent le même générateur de nombres aléatoires que random() et
srandom(), ainsi les bits de poids faibles sont tout aussi imprévisi-
bles que les bits de poids forts. Ceci n´est pas le cas avec les anci-
ennes implémentations de rand(), où les bits de poids faibles n´étaient
pas " aussi aléatoires" que ceux de poids forts.
Dans Numerical Recipes in C: The Art of Scientific Computing ( William
H. Press, Brian P. Flannery, Saul A. Teukolsky, William T. Vetterling;
New York: Cambridge University Press, 1990 ( 1st ed, p. 207)), le com-
mentaire suivant apparaît :
" Si vous désirez engendrer un entier aléatoire entre 1 et 10,
vous devez toujours procéder en utilisant les bits de poids
forts, comme dans :
j=1+(int) ( 10.0*rand()/(RAND_MAX+1.0));
et jamais ainsi :
j=1+(rand() % 10);
( car cette derniere version utilise les bits de poids faibles)."
La génération de nombres aléatoires est un domaine complexe. Le livre
Numerical Recipes in C ( référence ci-dessus) fournit une excellente
présentation pratique d´un générateur aléatoire dans le chapitre 1
( Random Numbers).
Pour une discussion plus théorique, qui aborde également en profondeur
d´autres domaines, voir le chapitre 3 ( Random Numbers) du livre de Don-
ald E. Knuth The Art of Computer Programming, volume 2 ( Seminumerical
Algorithms), 2nd ed.; Reading, Massachusetts: Addison-Wesley Publishing
Company, 1981.
[NDT] : Les 3 volumes de " Art of Computer Programming" n´existent pas
en version française à ma connaissance. C´est néanmoins un ouvrage que
je recommande fortement, même si la lecture en version anglaise le rend
un peu aride...
Je ne sais pas si " Numerical Recipes in C" est disponible en traduction
francaise.
CONFORMITÉ
SVID 3, BSD 4.3, ISO 9899
VOIR AUSSI
random(3), srandom(3), initstate(3), setstate(3)
TRADUCTION
Christophe Blaess, 1997.
GNU 5 Novembre 1996 RAND(3)
comme graine pour srand(), tu peux utiliser la fonction time() dans l´en-tete time.h
3/ je ne suis pas sur d´avoir tout compris
désolé si je me suis trompé mais je suis a la bourre...