Bonjour,

Mon programme jouant aux dames fonctionne maintenant assez bien, mais il reste "deterministe"; pour varier les parties lorsqu'il joue contre lui-meme j'aimerais qu'il choisisse son coup aleatoirement ; pour cela j'ai essayé (coups etant un vector<Coup> de la stl):

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
 
srand((unsigned)time(NULL));  
int attente=0;   
for (int j=N; j>=0; j--) attente++; // pour laisser un petit temps d'attente
return coups[(int)(N*(float)rand()/(RAND_MAX+1.0))];
ce qui fonctionnait jusqu'a ce que j'optimise le programme avec -O3 (je suppose que le compilateur supprime alors ce "attente++"

Ensuite j'ai essayé:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
 
#include <algorithm>
random_shuffle(coups.begin(),coups.end());
return coups[0];
etrangement cela ne fonctionne pas :-/

Enfin j'ai trouvé un code de bon generateur aleatoire sur le net, mais la suite des nombres generes est deterministe (genre 24 78 38..etc pour une loi uniforme sur 1..100); etant donne que le nombre d'appels sera deterministe dans mon cas, je retombe sur le meme probleme..

Bref, le problème est de prendre [0..n] en entree et de retourner un coups[k] où k est non deterministe dans [0..n] (il y a moins d'une seconde entre l'appel de fonction et le return coups[k])

Merci d'avance,
Chewbi, qui espère que son problème est résoluble (y'a bien rand() sur les calculatrices ^^)