import java.util.ArrayList; import java.util.LinkedList; import java.util.List; import java.util.Random; /** * * @author guehenneux * */ public class TestPoker { public static int nombreCombinaisons; public static void main(String[] args) { /* * liste des cartes initiales */ List cartes = new ArrayList(); for (int carte = 0; carte < 52; carte++) { cartes.add(carte); } /* * on en prend 2 au hasard */ Random random = new Random(); int carte0 = cartes.remove(random.nextInt(cartes.size())); int carte1 = cartes.remove(random.nextInt(cartes.size())); /* * on constitue la main initiale avec ces deux cartes */ LinkedList main = new LinkedList(); main.add(carte0); main.add(carte1); /* * on teste toutes les combinaisons possibles a partir de cette main * initiale */ testerCombinaisons(main, cartes, 0); } /** * * @param cartesEnMain * @param cartesRestantes * @param indexChoix */ public static final void testerCombinaisons( LinkedList combinaison, List cartesRestantes, int indexChoix) { int nombreCartesCombinaison = combinaison.size(); int nombreCartesRestantes = cartesRestantes.size(); if (nombreCartesCombinaison == 7) { /* * on a une combinaison complete : on la traite (ici, je me contente * de l'afficher) */ nombreCombinaisons++; } else { /* * la combinaison est encore incomplete, on doit rajouter une carte * avant de la tester a nouveau */ int carteRestante; /* * on teste avec chacune des cartes restantes */ for (int indexCarteRestante = indexChoix; indexCarteRestante < nombreCartesRestantes; indexCarteRestante++) { carteRestante = cartesRestantes.remove(indexCarteRestante); /* * on ajoute la carte restante choisie a la combinaison */ combinaison.addLast(carteRestante); /* * on teste toutes les combinaisons incluant cette carte */ testerCombinaisons(combinaison, cartesRestantes, indexCarteRestante); /* * puis on retire la carte afin d'en essayer une autre (on * n'oublie pas de reintegrer la carte aux cartes restantes) */ combinaison.removeLast(); cartesRestantes.add(indexCarteRestante, carteRestante); } } } }
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question