Aide pour faire un puissance 4 (algo qui recherche les solution).

Aide pour faire un puissance 4 (algo qui recherche les solution). - Java - Programmation

Marsh Posté le 20-11-2005 à 22:46:50    

Bonjour,
 
 
Je vais faire un puissance 4 en java.
 
La taille de l'espace de jeu ainsi que le nombre de jetons à aligner pour gagner sont personalisables. En fait c'est plutot un puissance "x".
 
Par contre au départ je voulais mettre en dur toutes les solution possibles mais impossible car trop nombreuses.
 
Il me faut un algo qui fait ça en dynamique. Et pour l'interface graphique et la gestion des cases , il vaut mieux utiliser une tableau à deux dimension ou un Jtable ??
 
 
Merci pour votre aide.
 
 
 

Reply

Marsh Posté le 20-11-2005 à 22:46:50   

Reply

Marsh Posté le 20-11-2005 à 23:29:04    

Renseigne toi sur comment fonctionne l'algorithme minimax, et cherche une heuristique qui va bien (et pas un truc bidon qui ne fait qu'ajouter un jeton par dessus le dernier jeton que le joueur humain a ajouté :D).
Pour le côté graphique, reviens une fois que tu auras programmé l'IA, c'est vraiment pas le plus important.


Message édité par rnoizet le 20-11-2005 à 23:29:54
Reply

Marsh Posté le 21-11-2005 à 00:11:41    

Non, pour l'instant je n'implemente pas d'IA.
 
Seulement un mode deux joueurs humain.
 
DOnc il me faut un algo pour trouver le nombre de jetons alignés (soit 2,3,4,5.....) en fonction de la taille de la grille.
 
Et concernant la liaison entre la grille et les données qui sont derrières (coordonnées de jetons), il faut utiliser une Jtable ou un simple tableau à deux dimension ??

Reply

Marsh Posté le 21-11-2005 à 03:39:05    

Une solution peut consister en la recherche dans un tableau en 2D de n jetons alignés sur les diagonales droites, gauches, les horizontales et les verticales, avec des coupures intelligentes pour aller plus vite (par exemple si une verticale est constituée de N-1 jetons, ça sert à rien de regarder la couleur des jetons).

Reply

Marsh Posté le 21-11-2005 à 23:52:18    

ok je vais voir ça
 
merci

Reply

Marsh Posté le 22-11-2005 à 22:51:07    

si tu veux jen ai un de fait en c++ en mode console mais bon c pas tres tres compliqué et ca fé du bien de réfléchir ^^

Reply

Marsh Posté le 23-11-2005 à 13:10:50    

Je pense que ce lien pourrai t'interesser http://javafr.com/recherche.aspx?r [...] +4&tr=tout
Bien sur il ne s'agit pas de pomper le code  :non: mais plutot de savoir comment il fonctionne...
 ;)  

Reply

Marsh Posté le 23-11-2005 à 13:43:20    

slimannnnn>
 
Je voudrais être sûr que tu ne confondes pas deux choses:
 
- Ton interface graphique;
- Les données qui vont derrière.
 
Tu parles de "nombre de jetons alignés" et de "JTable". Tu mélanges deux logiques différentes.
 
Pour éviter de commettre cette erreur, imagine que ton jeu n'a pas d'interface graphique DU TOUT. Ou, à la limite, une interface "command-line".
 
De la sorte, tu modéliseras correctement le jeu et tu éviteras un couplage intempestif avec le GUI. Ce sera plus propre, plus modulaire et plus flexible.
 
Je ne sais pas si tu saisis et si tu avais bien fait la distinction. Juste au cas où. [:pingouino]


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
Reply

Marsh Posté le 23-11-2005 à 13:54:11    

cherche du coté de min-max comme algo (variante de alpha-beta) :o
 
Ca marche par pondération d'une grille (là j'imagine qu'avec une pondération dynamique ca devrait marchouiller)

Reply

Marsh Posté le 12-02-2006 à 19:47:39    

brasseldX a écrit :

Je pense que ce lien pourrai t'interesser http://javafr.com/recherche.aspx?r [...] +4&tr=tout
Bien sur il ne s'agit pas de pomper le code  :non: mais plutot de savoir comment il fonctionne...
 ;)


 
c'est normal de pas reussir a ouvrir ce lien? :??:  

Reply

Marsh Posté le 12-02-2006 à 19:47:39   

Reply

Marsh Posté le 12-02-2006 à 19:53:47    


Tous les sites de CodeS-SourceS sont inaccessibles à priori

Reply

Marsh Posté le 12-02-2006 à 21:24:07    

ben comment on fait alors??? celui qui a conseillé ce lien a bien eu accès aux infos pourtant

Reply

Marsh Posté le 13-02-2006 à 16:27:44    

Sans vouloir jeter une pierre dans la marre, si le jeu s'est toujours fait avec l'alignement de 4 pions, ce n'est pas pour rien...
Donc le paramétrage du nombre de pions à aligner, déjà t'oublies.
Pour ceux à qui ça ne saute pas aux yeux : ce n'est pas parce que tu agrandis la grille que tu ajoutes des directions pour faire des lignes, cela reste vertical, horizontal, diagonal : je mets au défit quiconque d'aligner 10 pions contre quelqu'un qui a plus de 30 de qi.
Reste donc sur 4 pions, c'est ni trop peu ni trop :)
Ensuite, prendre une grille plus ou moins grande, c'est juste pour allonger le temps de jeu si tu prends plus grand... En gros, aucun intérêt.
 
Pour l'algo, je ferais un truc du genre (je n'y ai pas réfléchi, c'est le truc qui me vient à l'idée, juste là), je prends le pion en position x,y, je regarde dans les 4 directions (vertical, horizontal / et \) tant que j'ai un pion de la même couleur, je continue (alors faut faire dans les 2 sens si tu rencontres vide ou pion d'une autre couleur), si j'arrive à 4 => game over, sinon je passe au pion suivant etc...

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed