Bonjour tout le monde
En cherchant des infos sur le MinMax et l'alpha beta je suis tombé sur ce tutoriel (très bien fait, et très intéressant ) :
Un morpion en SDL
En guise d'exercice et pour mieux visualiser ce que fait le programme, j'ai décidé de le retranscrire avec le langage que j'utilise, PureBasic.
Jusqu'ici tout va bien, le programme tourne, et bien que PureBasic soit un langage procédural , j'ai réussi à reprendre le code original.
Voici le résultat, l'archive contient les sources PureBasic et un exécutable pour tester sans PureBasic.
http://herved25.free.fr/sources/morpion.zip
Et j'arrive enfin à ma question, je constate un comportement curieux de l'IA, du moins il me semble curieux, mais peut-être est-ce normal ?
Parfois alors que j'ai deux pions alignés, plutôt que de me contrer, l'IA joue une case qui non seulement ne me contre pas, mais ne la met pas dans une position gagnante. Par contre , dès qu'elle peut gagner, elle le fait très bien.
Donc dans l'ensemble l'IA réagit assez bien, alors je reste perplexe !
Ai-je fait une erreur quelque part ? Est-ce que le code original a le même comportement ?
Autre point : il me semble que le niveau facile réagit mieux que le niveau difficile. Par exemple au début d'une partie , si je laisse la case centrale libre, au niveau facile l'IA va l'occuper dès le tour suivant, au niveau difficile non ! ça me parait curieux.
J'ai beau comparer mon code avec l'original je ne vois pas de différence.
Aussi je me demandais si quelqu'un ayant déjà bossé sur ce tutoriel pouvait me proposer une archive avec le code compilé que je puisse tester et comparer le programme écrit avec C++ et le mien ?
Si le comportement est identique j'arrêterai de chercher un problème qui n'existe pas
Ou si quelqu'un veut bien comparer le comportement de mon exécutable avec le sien et me dire si l'IA réagit de la même façon avec les deux programmes à la même configuration de jeu ? ça m'éviterait de m'arracher les cheveux pour rien !
par avance merci.
Partager