sebarx
Messages postés1Date d'inscriptionvendredi 7 novembre 2003StatutMembreDernière intervention30 juin 2004
-
30 juin 2004 à 16:42
cs_dragon
Messages postés2336Date d'inscriptionsamedi 14 juillet 2001StatutMembreDernière intervention 5 mai 2009
-
5 juil. 2004 à 20:45
bonjour a tous
amateur devisual basic j'essai de réaliser un jeu : le puissance 4
bon j'ai déja programmé le jeu pour y jouer a deux mais ce n'est le but
je veux réaliser une intelligence artificielle, l'ordinateur joue contre un utilisateur.
et la je suis completement bloqué, je sais c'est un travail difficile mais c'est la meilleure façon d'apprendre que de galèrer sur un projet aussi dur.
je n'arrive pas a trouver un algorythme simple ou plutot réalisable
en fait je ne sais pas comment commencer vu que ce type de programme n'est pas purement du séquentiel
je vous explique comment s'articule le programme
deriere l'aspect visuel du "damier" contenant les pions, il y a un tableau à deux dimensions dans lequel je note un nombre pour savoir ce qu'il y a dans la case :
0 : case vide
1 : pion du premier joueur
2 : pion du second joueur.
j'ai déja programmé des fonctions permettant de savoir si un joueur avait mis quatre pions à la suite verticalement horizontalement ou en biais.
donc j'ai en ma disposition un tableau dont les elements ont des valeurs différentes et c'est tout et il faut trouver le meilleur endroit où mettre le jeton
voila alors si vous avez des idées je suis tout ouie.
cs_dragon
Messages postés2336Date d'inscriptionsamedi 14 juillet 2001StatutMembreDernière intervention 5 mai 20096 30 juin 2004 à 16:55
vérifier s,il y a des ligne de 3 de faites, autant pour gagner que pour bloquer
- 3 qui se suivre
- 2 qui se suivre et un 3e distancer
ensuite valider la hauteur de la colonne qui en manque 1, savoir si on peut gagner ou si c'est risquer. Valider aussi si c,est pair ou impair le nombre, puisque ça peut différencier la tactique
Scalpweb
Messages postés1467Date d'inscriptionsamedi 13 mars 2004StatutMembreDernière intervention 5 mai 20104 1 juil. 2004 à 11:37
Je pense que tu pourrais faire autre chose :
tu pourrais faire tester toutes les possibilités par l'ordinateur. Je m'explique : tu fais une boucle qui teste toutes les case, et qui note chaque possibiltés sur 100. Voilà, pour chaque case, ce que pourrait être la réfléxion de l'ordi :
-> y a t-il un pion sur la case ? Si oui, note de 0/100 pour la case actuelle, et passe à la case suivante;
-> si la case est vide :
-> peut-on directement gagner en mettant un pion ici ? Si oui, note de 100/100 pour la case, et passe à la suivante ;
-> le joueur adverse peut-il gagner en mettant un jeton ici au prochain tour ? si oui, note de 99/100 pour la case, et passe à la suivante.
-> peut-on gagner en jouant deux coups ? Si oui, note de 80/100 ;
-> peut-on gagner en jouant trois coups ? Si oui, note de 30/100 ;
-> etc etc...
Ensuite, l'ordinateur joue sur la case qu'il a le mieux noté.
cs_dragon
Messages postés2336Date d'inscriptionsamedi 14 juillet 2001StatutMembreDernière intervention 5 mai 20096 5 juil. 2004 à 17:32
Scalpweb ça erviens exactement au même que moi, sauf tu prend le calcul dans le sens inverse que moi et ça sera plus lent
si tu as une chance de gagner a la dernière case en bas, ben tu vas devoir faire toute les possibilité possible de toute les cases avant d'ateindre la dernière
moi je vais en priorité, je vasi passer toute les case aussi, sauf je vasi recommencer toutes les case tant que je trouve pas un possibilité intéressante (victoire, éviter une défaite, mettre 3 d'affilé, éviter que l,autre en mettre 3, 2 .....) Donc je calcukl toute les case en priorité de victoire.
si c,est trouver, ben pas besoin de continuer, le code arrête là
Vous n’avez pas trouvé la réponse que vous recherchez ?
Scalpweb
Messages postés1467Date d'inscriptionsamedi 13 mars 2004StatutMembreDernière intervention 5 mai 20104 5 juil. 2004 à 19:07
Non, je regrette, je ne vois pas comment tu veux faire !
A moins de prendre plein de variables qui vont surchargé ta mémoire, tu vas galérer il me semble. Avec la technique que je propose, c'est très rapide : fait un essai : l'ordi calcul si vite que, ^m sur un 350mHz, m'ordi met moins d'une seconde. Comme ça, au moin, pas d'erreur. C'est de cette manière que son progrmmé la plupart des jeu d'échecs.
cs_dragon
Messages postés2336Date d'inscriptionsamedi 14 juillet 2001StatutMembreDernière intervention 5 mai 20096 5 juil. 2004 à 20:45
mon algo est d'effectuer toutes les cases pour une victoire, ensuite de recommencer toute les case pour éviter une défaite, ensuite faire pareil pour 3 cases et ainsi de suite
si une case est trouver, faire le coup puis sortir
pas besoin de savoir qu'un coup a une case peut donner 2 pions d'affiler si a une case on sait qu'on peut gagner
bien que c,est sur sur un jeu de puissance 4, on peut tout concervé en mémoire la valeur de chaque case, sauf sur des jeux plus complexe, faut recalculer pour rafraichir la mémoire, comme une jeux de plate-forme