• [^] # Re: Pour Min/Max

    Posté par (site web personnel) . En réponse au message Programmation d'une IA pour le jeu des dames chinoises. Évalué à 2.

    Je pense pas que ça soit une bonne idée de t'envoyer mon code, d'autant que c'est pas un modèle de programmation :-)
    Mais je peux t'aider sur la fonction d'évaluation.

    Le but de cette fonction c'est de donner une probabilité de gagner dans une disposition de jeu donnée. Donc si tu as gagné, c'est à dire que tous tes pions sont en position finale, alors P = 1. Les valeurs indiquent le meilleur chemin à prendre dans l'arbre d'évaluation min-max. Elles jouent le rôle de "panneau indicateur", on parle d'"heuristiques" (c'est le terme savant).

    Le problème c'est qu'il n'y a pas UNE meilleure façon de faire (du moins on ne la connait pas), c'est donc à toi d'essayer différentes heuristiques et de trouver la meilleure.

    Le plus simple c'est d'associer un score à chaque emplacement du jeu, score d'autant plus élevé que l'emplacement est proche de la position finale du pion.
    Pour le joueur d'en haut, ça peut donner quelque chose comme ça (disclaimer : j'ai pas testé ces valeurs, c'est pas dit que ce soient les meilleures)

    0.40

    0.15 0.15

    0.06 0.06 0.06

    0.03 0.03 0.03 0.03


    Et les valeurs suivantes vont en décroissant quand tu t'approche du bas.

    Pour avoir le score d'un joueur à un moment donné, il suffit de faire la somme des valeurs de toutes les cases sur lesquelles sont ses pions.
    Évidemment, pour le joueur n°2 , les valeurs seront pas les mêmes.

    Ça c'est la version la plus simple, après c'est à toi d'avoir de l'imagination, je connais pas assez bien les dames chinoises pour proposer la meilleur façon de faire :-)

    De mémoire, je faisais de la façon suivante :
    - additionner les scores associés aux coordonnées de chaque pion
    - soustraire ceux de l'adversaire
    - compter les pions qui ont le droit de se déplacer (l'idée c'est qu'une position où on est libre de se déplacer est meilleure qu'une où on s'est retrouvé bloqué dans un coin ou par l'adversaire)
    - soustraire les déplacement de l'adversaire

    Avec ça, tu verras que tes pions s'organisent tous seul pour faire des "saute-moutons", c'est assez marrant à voir :-)