18-09-2008, 09:41 AM
L'algo pour la calcul des possibilités ou celui pour le calcul d'apprentissage ?
Celui pour l'apprentissage, c'est en trois parties. Il faut savoir que l'IA est toujours le joueur 2 (pour des raisons pratiques au niveau de la création de la partie et du jeu, c'est plus simple pour moi).
- Quand un coup est joué :
SI le joueur à jouer EST le joueur 1
POUR CHAQUE case DE plateau
NouveauPlateau = inverser_le_proprietaire(plateau, case)
FIN DU POUR
SINON
NouveauPlateau = plateau
FIN DE SI
enregistrer(NouveauPlateau, coup_joué, par_qui)
- Quand la partie se termine :
SI gagnant EST joueur 1
supprimer_tous_les_coups_joués_par(joueur 2)
SINON SI gagnant EST joueur 2
supprimer_tous_les_coups_joués_par(joueur 1)
SINON
supprimer_tous_les_coups()
FIN DE SI
- quand l'IA doit jouer un coup
chercher(coup_joué) SI NouveauPlateau = plateau
SI (nombre de résultat) == 0
jouer_au_hasard()
SINON
jouer_un_des_coups_trouvés_au_hasard();
FIN DE SI
Et pour ceux qui trouveraient mon explications fumeuse : http://rafb.net/p/vlow1m91.html
Pour l'ia par calcul, j'aurais du executer ma fonction casesLibres() à chaque fois en modifiant le plateau puis en le ramenant à son état initial, et ça aurait fait très très lourd je pense Alors que là c'est assez léger
Celui pour l'apprentissage, c'est en trois parties. Il faut savoir que l'IA est toujours le joueur 2 (pour des raisons pratiques au niveau de la création de la partie et du jeu, c'est plus simple pour moi).
- Quand un coup est joué :
SI le joueur à jouer EST le joueur 1
POUR CHAQUE case DE plateau
NouveauPlateau = inverser_le_proprietaire(plateau, case)
FIN DU POUR
SINON
NouveauPlateau = plateau
FIN DE SI
enregistrer(NouveauPlateau, coup_joué, par_qui)
- Quand la partie se termine :
SI gagnant EST joueur 1
supprimer_tous_les_coups_joués_par(joueur 2)
SINON SI gagnant EST joueur 2
supprimer_tous_les_coups_joués_par(joueur 1)
SINON
supprimer_tous_les_coups()
FIN DE SI
- quand l'IA doit jouer un coup
chercher(coup_joué) SI NouveauPlateau = plateau
SI (nombre de résultat) == 0
jouer_au_hasard()
SINON
jouer_un_des_coups_trouvés_au_hasard();
FIN DE SI
Et pour ceux qui trouveraient mon explications fumeuse : http://rafb.net/p/vlow1m91.html
Pour l'ia par calcul, j'aurais du executer ma fonction casesLibres() à chaque fois en modifiant le plateau puis en le ramenant à son état initial, et ça aurait fait très très lourd je pense Alors que là c'est assez léger