É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