Lister toute les combinaisons possibles

cs_hysteria Messages postés 21 Date d'inscription mardi 6 mai 2003 Statut Membre Dernière intervention 3 août 2010 - 31 juil. 2010 à 14:03
semaesma Messages postés 17 Date d'inscription dimanche 19 avril 2009 Statut Membre Dernière intervention 4 juillet 2012 - 4 juil. 2012 à 16:37
Bonjour,
ca fait 2 ou 3 jours que je bloque sur un probleme de combinaisons, je cherche a faire un outil de poker qui calculera quelques proba, et lorsque j'essaye de lister toute les combinaisons de cartes possibles (sans ordre et sans répétitions) je tombe sur des valeurs erronées:

on sait qu'il existe au texas holdem 52!/(7!*(52-7)!) mains de 7 cartes differentes, soit 133 784 560 combinaisons differentes

cependant je n'arrive pas a trouver d'algorithmes pour lister toute ces combinaisons sans répétitions (par exemple 2 3 AS 8 9 V D c'est pareil que 3 2 AS 8 9 V D)

quelqu'un pour m'aider? :)

5 réponses

cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 371
3 août 2010 à 09:12
Pour commencer, tu peux créer un objet carte, il y a deux paramètres (au moins) valeur et couleur (par exemple dame de pique) tu peux créer des enum pour te faciliter les choses.

Et il faut surtout réimlémenter la méthode equals() et retourner vrai si valeur et couleur sont les mêmes.

Ensuite, tu peux créer une classe paquet de cartes, qui est un exends d'aRrayList<Carte> qui te servira à distribuer ...

Et enfin, j'en viens à la résolution de ton problème, tu créé une classe main qui contient un tableau ou une arrayList de 7 cartes et là, tu réimplémentes la fonction equals pour ton objet Main la fonction retourne vrai seulement si toutes les cartes sont identiques.

Et c'est cette derniere fonction qui va te permettre de supprimer les doublons.
1
Rejoignez-nous