0%

Problème 54

Énoncé:

Au Poker, un jeu de cartes, une main consiste en cinq cartes, qui sont classées, du plus bas au plus haut, de la manière suivante:

  • Carte Haute: La carte ayant la plus haute valeur.
  • Une paire: Deux cartes de la même valeur.
  • Deux paires: Deux différentes paires.
  • Brelan: Trois cartes de la même valeur.
  • Quinte: Toutes les cartes ont des valeurs consécutives
  • Couleur: Toutes les cartes sont de la même couleur
  • Full: Combinaison d'un brelan et d'une paire.
  • Carré: Quatre cartes de la même valeur.
  • Quinte Flush: Toutes les cartes sont consécutives et de la même couleur.
  • Quinte Flush Royale: 10, Valet, Reine, Roi, As de la même couleur.

La valeur des cartes suit l'ordre suivant:
$2, 3, 4, 5, 6, 7, 8, 9, 10$, Valet, Reine, Roi, As.

Si deux joueurs ont la même catégorie de mains, alors la catégorie ayant les cartes les plus fortes gagne. Par exemple, une paire de $8$ bat une paire de $5$ (voir l'exemple 1 ci-dessous). Mais si il y a égalité en utilisant cette méthode, alors on compare les deux plus fortes cartes restantes dans la main des deux joueur, et ainsi de suite.

Voici cinq exemple de mains données à $2$ joueurs.

NOTE: Le problème original étant en anglais, ce sont les noms des cartes anglaises qui sont utilisées, voici un tableau récapitulant les traductions:

Anglais Français
Diamonds Carreaux
Clubs Trèfles
Hearts Coeurs
Spades Piques
Ace As
King Roi
Queen Reine
Jack Valet
Ten Dix

Ainsi, "TD" signifie "Ten Diamonds" donc le dix de carreaux, ou encore 3H siginifie "3 Hearts" donc le 3 de coeurs.

Main Joueur 1 Joueur 2 Gagnant
1 5H 5C 6S 7S KD - Paire de cinq 5H 5C 6S 7S KD - Paire de huit Joueur 2
2 5D 8C 9S JS AC - Plus haute carte As 2C 5C 7D 8S QH - Plus haute carte Reine Joueur 1
3 2D 9C AS AH AC - Trois As 3D 6D 7D TD QD - Couleur avec les carreaux Joueur 2
4 4D 6S 9H QH QC - Paire de reines, plus haute carte 9 3D 6D 7H QD QS - Paire de reines, plus haute carte 7 Joueur 1
5 2H 2D 4C 4D 4S - Full avec 3 quatre 3C 3D 3S 9S 9D - Full avec 3 trois Joueur 1

Le fichier poker.txt contient mille mains aléatoires données à deux joueurs. Chaque ligne du fichier contient dix cartes (écrites de la même manières que dans les exemples, donc en anglais), qui sont séparées par un simple espace: les cinq premières cartes sont celles du Joueur 1, et les cinq dernières celles du Joueur 2. Toutes les cartes sont valides (pas de caractère invalide ou de cartes répétées), chaque main n'est dans aucun ordre particulier, et il y a dans chaque manche un clair gagnant.

Combien de parties le joueur 1 gagne t-il ?

Lien du problème originel