Mopade
Messages postés2Date d'inscriptionmercredi 10 janvier 2007StatutMembreDernière intervention15 janvier 2007
-
12 janv. 2007 à 16:38
cs_jojolemariole
Messages postés519Date d'inscriptionmercredi 21 mars 2007StatutMembreDernière intervention19 décembre 2016
-
19 juil. 2007 à 12:23
Voila avec un ami nous sommes en train de créer un jeu de Dames malheureusement nous avons un problème :(
En effet lors de l'intervention de la machine ( lorsqu'elle doit jouer ) le programme plante, il y a donc un problème au niveau de l'IA de l'ordinateur
Voici le code et j'espère de tout coeur que vous pourrez nous aider, au bout d'une semaine dans la situation on commence à désespérer
sheorogath
Messages postés2448Date d'inscriptionsamedi 21 février 2004StatutModérateurDernière intervention29 janvier 201017 12 janv. 2007 à 17:59
donner le message d'erreur serait un bon debut ... la perso je n'ai pas envie de lire tout le code pour essayer de detecter une faute je prefere savoir quoi cherhcer
"n'est pas mort ce qui semble a jamais dormir et en d'etrange temps meme la mort peut mourrir"
Mopade
Messages postés2Date d'inscriptionmercredi 10 janvier 2007StatutMembreDernière intervention15 janvier 2007 15 janv. 2007 à 16:48
Désolé, en fait le programme plante au moment du test qui vérifie que la case ciblée contient bien un pion blanc. cela se situe à la ligne 338 :
Le message d'erreur est :
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 8
at LeJeu.ManIA(LeJeu.java:338)
at LeJeu.jouer(LeJeu.java:74)
at LeJeu.principal(LeJeu.java:36)
at Lanceur.main(lanceur.java:6)
Voilà si vous pouvez me débloquer de cette situation un peu inquiétante nous vous en serions très reconnaissant ...
cs_jojolemariole
Messages postés519Date d'inscriptionmercredi 21 mars 2007StatutMembreDernière intervention19 décembre 201625 19 juil. 2007 à 12:18
alors là, je dois avouer que ça me laisse perplexe
1) apparemment t'essaies de faire de l'intelligence artificielle
ce que tu as fait ne vaut rien, il ne jouera pas bien comme ça, rien qu'à voir la gueule de ton programme. Pour les dames, un simple algo de minimax donnera de bons résultats.
2) l'interface, bon on en parle même pas
3) ton problème indexOutOfBoundsException
bon alors là, c'est le ponpon : un tableau de taille 8 peut être indexé de 0 à 7 !!
en gros, si tu veux parcourir un tableau de taille 8, tu fais :
for(int i = 0 ; i < 8 ; i++)
alors que moi je vois ça dans ton code :
for ( j=3; j<=(COL+1); j++ ) {
donc j varie de 3 à 9, ok
if ( dam[i-1][j-1] == B) {
ici on accède donc potentiellement à l'index 8 du tableau : erreur, normal
ici, quand même je dois admettre que tu fais des vérifications
sauf que tu vérifie bien que i est inférieur 8, mais tu fais dam[i+1]... ce qui , dans le cas ou i vaut 7
donne une erreur
captureSOposs = true;
}
}
}
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_jojolemariole
Messages postés519Date d'inscriptionmercredi 21 mars 2007StatutMembreDernière intervention19 décembre 201625 19 juil. 2007 à 12:23
donc à mon avis, il te manque plusieurs choses pour programmer une IA
déjà, une phase d'analyse un peu plus poussée, on dirait que tu n'as pas prévu les promotions en Reine, car ton tableau ne contient que des 'N' ou des 'B'
ensuite plus d'expérience
mais je ne peux que vous encourager, j'ai eu moi aussi des débuts difficiles quand j'ai voulu faire un jeu d'échec
enfin, je vous conseille dès maintenant de séparer vos SimpleOutput.... (qui relève de la partie ihm) de vos calculs
en gros essayer de penser que l'on pourra greffer n'importe quel type d'interface sur votre IA