Bonjour
Trouver la valeur d'une main au Poker, peut-être la pire chose qui soit, ou une simple "petite promenade de campagne"
Tout commence par le choix des noms de variables que l'on affecte aux cartes.
Ainsi si tu ranges tes cartes dans un tableau de 51 éléments et par ordre de taille tu peux avoir le tableau
C0,C1, C2…..C11, C12, D13, D14……,D25, H26, H27, ….. H38, S39,S40,…..S51. Pour respectivement les trèfles, les carreaux, les coeurs et les piques.
Après le tirage aléatoire des 5 premières cartes et (ce qui est le plus important) un tri par ordre croissant de ces cartes tu peux déceler immédiatement la présence d'une couleur (flush) : il suffit pour cela que toutes les cartes d'une main soient dans les intervalles [0,12],[13,25], [26,38] ou [39,51]
Ensuite, tes cartes étant classées par ordre croissant tu peux simplement ajouter 1 à la valeur de la plus petite, si le résultat est égal à celle de la seconde alors tu ajoutes encore 1 à celle de la seconde… et ainsi de suite si le test est vrai chaque fois, alors tu es en présence d'une quinte. Et si cela à lieu alors que tu as un flush, ta quinte est une quinte flush. Et si la plus petite est un 10 (qui dans l'exemple que je te donne a les valeurs C9, D22, H35 ou S47, alors il s'agit d'une flush royale.
Attention au fait que les règles du Poker stipulent que l' As peut prendre la valeur 1 dans le cas de la quinte avec 2,3,4,5 et As.
Un carré XXXX peut être classé de deux facons : yXXXX ou XXXXy et l'écart entre les X est toujours de 13.
Un Brelan XXX sera de la forme yzXXX, ou yXXXz ou XXXyz avec toujours 13 entre les X
Une paire XX sera w,y,z,X,X ou w,y,X,X,z ou w,X,X,y,z ou enfin X,X,w,y,z
Le Full sera une paire + un brelan.
Si tu veux plus de détails, fait moi signe, je reste à ta disposition.
Notes cependant que 10 joueurs sur une table compliquent sérieusement ton programme car avec 50 cartes distribuées tu es obligé en fonction de l'écart de chacun des joueurs de redistribuer des cartes qui proviennent des premières mains. Et en aucun cas de redonner à un joueur une carte qu'il vient de rejeter.
Dans le cadre d'un exercice scolaire, je te conseille plutôt de faire un programme de "DrawPoker". Dans ce cas, tu n'as qu'un seul joueur à qui l'ordinateur distribue 5 cartes. Le joueur choisi d'en garder le nombre qu'il souhaite et l'ordinateur remplace les cartes rejetées par 5,4,3,2,1,0 qu'il reprend dans le paquet des cartes restantes. En outre cela permet de faire intervenir une 53ème carte (le Joker) qui donne au jeu un attrait évident.
Message édité par harratch le 20-05-2013 à 15:37:12