Contexte
Brag est un jeu de cartes similaire au concept, mais plus simple que le poker. Une main vante se compose de trois cartes et est classée comme suit du plus haut au plus bas:
Trois d'une sorte - les trois cartes du même rang. Nommé "trois rois", etc.
Flush courant aka flush droite. Les trois cartes de même couleur et de rangs consécutifs. La main est nommée par les trois cartes dans l'ordre croissant, suivies des mots "au rebond" pour faire la distinction avec une simple course / ligne droite, par exemple "dix-jack-queen au rebond". Notez qu'un as est soit haut soit bas mais pas les deux - "king-ace-two" n'est pas une course.
Exécutez aka directement. Comme ci-dessus mais sans obligation de faire correspondre les costumes. Nommé simplement par exemple "ten-jack-queen".
Flush - les trois cartes de la même couleur, nommées d'après le rang le plus élevé, par exemple "Ace flush".
Paire - deux cartes de même rang avec un tiers d'un autre rang de version. Nommé "paire de trois", etc.
Toute autre combinaison, nommée d'après le rang le plus élevé, par exemple "as de haut".
Défi
Étant donné trois cartes à jouer, sortez le nom de la main de vantardise qu'ils sortent.
Les cartes seront entrées soit sous forme de trois chaînes de 2 caractères, soit concaténées sous la forme d'une seule chaîne de 6 caractères (selon la préférence de votre implémentation), où la première de chaque paire correspond au rang (2 ... 9, T, J, Q, K, A) et le second signifie la combinaison (H, C, D, S).
Les règles de golf standard s'appliquent - écrivez un programme ou une fonction qui accepte cette entrée et génère le nom de la main comme détaillé ci-dessus.
Vous pouvez supposer que l'entrée sera valide (rangs et combinaisons dans la plage ci-dessus, pas de carte répétée) et dans tous les cas que vous préférez, mais ne sera pas dans un ordre particulier.
La sortie doit être soit en majuscules, soit en minuscules, soit en majuscules raisonnables, par exemple en cas de titre ou en cas de phrase. Les rangs numériques doivent être précisés, par exemple "dizaines" et non 10s.
Exemples d'entrées et sorties:
2H3C2D => "pair of twos"
TD8C9C => "eight-nine-ten"
4SKS9S => "king flush"
4D4H4S => "three fours"
5H3H2C => "five high"
2D3DAD => "ace-two-three on the bounce"
6D6C6H => "three sixes"
Ceci est ma première tentative de défi sur ce site, veuillez suggérer des améliorations mais soyez doux :)
la source
"6D6C6S"
comme cas de test puisque six est un pluriel impairRéponses:
Rubis,
384, 320Accepte un tableau de chaînes à deux caractères.
Traduit les valeurs de pip en valeurs hexadécimales et identifie les mains en fonction du nombre de valeurs de pip distinctes.
Annoté:
la source
Python 2 ,
788, 715, 559, 556, 554, 546, 568,522 octets* passe maintenant les «six» * merci à Ben Frankel pour avoir économisé 46 octets!
Essayez-le en ligne!
Merci pour un premier défi sympa!
la source
D.get(a, b)
signifie accéder à la valeur dans le dict D à la clé a, avec la valeur par défaut b si la clé n'est pas trouvée. C'est la même chose que l'écritureD[a] if a in D else b
, qui est la même chose que l'écritureD[a] if a in D.keys() else b
.PHP,
413405398409408406398 octetsMalheureusement, PHP ne prend pas en charge le référencement de tableaux imbriqués à l'intérieur de chaînes;
cela aurait permis d'économiser encore
65 octets.Exécutez-le
echo <hand> | php -nR '<code>
ou testez-le en ligne .panne
Nécessite PHP> = 5.6 (pour
e[...]
)la source
Python 2 - 583 octets
Je suis trop nouveau pour pouvoir commenter des articles, alors je poste juste ma version de python solusion.
Correction d'un problème avec «es» pour la paire et trois des six. Merci à Not that Charles
Un peu plus lisible avec quelques commentaires
la source
j=0; if [z]*3==v:r="three %ss"%i(z)
enif [z]*3==v:r="three %ss"%d[z][0]
Mais il enregistre seulement 1 octet