Intelligence artificielle

sebarx Messages postés 1 Date d'inscription vendredi 7 novembre 2003 Statut Membre Dernière intervention 30 juin 2004 - 30 juin 2004 à 16:42
cs_dragon Messages postés 2336 Date d'inscription samedi 14 juillet 2001 Statut Membre Derniè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.

7 réponses

cs_dragon Messages postés 2336 Date d'inscription samedi 14 juillet 2001 Statut Membre Dernière intervention 5 mai 2009 6
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

ensuite, on doit regarder ceux de 2, faire pareil

puis ceux de 1

sinon positionner alléatoire

Bonne chance
0
Scalpweb Messages postés 1467 Date d'inscription samedi 13 mars 2004 Statut Membre Dernière intervention 5 mai 2010 4
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é.
0
Scalpweb Messages postés 1467 Date d'inscription samedi 13 mars 2004 Statut Membre Dernière intervention 5 mai 2010 4
1 juil. 2004 à 11:39
Tu peux m'écrirez si tu n'as pas compris.

Pice-WCorp bientôt sur le net.
0
cs_dragon Messages postés 2336 Date d'inscription samedi 14 juillet 2001 Statut Membre Dernière intervention 5 mai 2009 6
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à
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Scalpweb Messages postés 1467 Date d'inscription samedi 13 mars 2004 Statut Membre Dernière intervention 5 mai 2010 4
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.

Pice-WCorp : www.PicewCorp.fr.st
0
Scalpweb Messages postés 1467 Date d'inscription samedi 13 mars 2004 Statut Membre Dernière intervention 5 mai 2010 4
5 juil. 2004 à 19:08
d'ailleurs je crois que tu peux en trouver plusieurs exemples sur ce site.

Pice-WCorp bientôt sur le net.
0
cs_dragon Messages postés 2336 Date d'inscription samedi 14 juillet 2001 Statut Membre Dernière intervention 5 mai 2009 6
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
0
Rejoignez-nous