18-09-2008, 08:16 AM
Je me suis mal exprimé, concernant Flash : je n'effectue bien évidemment aucun calcul critique dans Flash. Simplement, le calcul des cases libres et prenables se fait deux fois, une fois dans flash et une fois dans Php, parce qu'il serait trop compliqué et trop lourd de récupérer les cases dans flash, donc je le lui refait calculer pour l'affichage. Mais bien sûr, c'est PHP qui gère le calcul amenant à l'enregistrement.
Pour l'IA, je teste en ce moment l'IA qui apprends, en fait elle est assez simple d'un point de vue code (probablement plus que celle qui calcule d'ailleurs). Le problème est que justement, comme tu le dis, les IA efficaces pour un jeu de Go n'existe pas parce qu'il y a trop de solutions à calculer. Et c'est le cas parce que contrairement au jeu d'echec, le jeu de Go se complexifie au fil de la partie : le début de la partie suit souvent un ordre déterminé selon quelques ouvertures, mais la fin est très complexe parce que de la complexité s'ajoute à chaque coup. Aux echecs, au contraire, on diminue la complexité à chaque prise de pièces.
Le problème donc est que mon jeu est du même type que le Go sur ce point : chaque coup augmente les possibilités de jeu pour un joueur et donc rends la partie plus complexe. J'ai fait le calcul hier, à priori il y a 10^48 possibilité de coups au maximum... Ca fait un petit peu trop pour que je les test toutes Alors qu'une recherche SQL dans une table, même si elle contient ce nombre d'enregistrement, c'est plus jouable je pense
Là est vraiment le problème, coder l'IA qui test les possibilités est faisable, mais ça implique de faire dans un situation "simple" (vers le dixieme tour) plusieurs millions de tests... et je suis pas sûr que PHP soit adapté à ça
Pour l'IA, je teste en ce moment l'IA qui apprends, en fait elle est assez simple d'un point de vue code (probablement plus que celle qui calcule d'ailleurs). Le problème est que justement, comme tu le dis, les IA efficaces pour un jeu de Go n'existe pas parce qu'il y a trop de solutions à calculer. Et c'est le cas parce que contrairement au jeu d'echec, le jeu de Go se complexifie au fil de la partie : le début de la partie suit souvent un ordre déterminé selon quelques ouvertures, mais la fin est très complexe parce que de la complexité s'ajoute à chaque coup. Aux echecs, au contraire, on diminue la complexité à chaque prise de pièces.
Le problème donc est que mon jeu est du même type que le Go sur ce point : chaque coup augmente les possibilités de jeu pour un joueur et donc rends la partie plus complexe. J'ai fait le calcul hier, à priori il y a 10^48 possibilité de coups au maximum... Ca fait un petit peu trop pour que je les test toutes Alors qu'une recherche SQL dans une table, même si elle contient ce nombre d'enregistrement, c'est plus jouable je pense
Là est vraiment le problème, coder l'IA qui test les possibilités est faisable, mais ça implique de faire dans un situation "simple" (vers le dixieme tour) plusieurs millions de tests... et je suis pas sûr que PHP soit adapté à ça