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):
ce qui fonctionnait jusqu'a ce que j'optimise le programme avec -O3 (je suppose que le compilateur supprime alors ce "attente++"
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))];
Ensuite j'ai essayé:
etrangement cela ne fonctionne pas :-/
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];
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 ^^)
Partager