Antecedentes
Brag es un juego de cartas similar en concepto a, pero más simple que el póker. Una mano alardeada consta de tres cartas y se clasifica de la siguiente manera de mayor a menor:
Tres de un tipo: las tres cartas del mismo rango Nombrado como "tres reyes", etc.
Ejecución de color también conocido como escalera de color. Las tres cartas del mismo palo y de filas consecutivas. La mano es nombrada por las tres cartas en orden ascendente seguidas de las palabras "en el rebote" para distinguir de una simple carrera / escalera, por ejemplo, "diez-jack-queen en el rebote". Tenga en cuenta que un as es alto o bajo, pero no ambos: "king-as-two" no es una carrera.
Corre alias derecho. Como arriba pero sin el requisito de combinar trajes. Llamado simplemente como, por ejemplo, "ten-jack-queen".
Flush - las tres cartas del mismo palo, nombradas por el rango más alto, por ejemplo, "Ace flush".
Par: dos cartas del mismo rango junto con un tercio del rango de otra versión. Nombrado como "par de tres", etc.
Cualquier otra combinación, nombrada por el rango más alto, por ejemplo, "as alto".
Desafío
Dadas tres cartas, muestra el nombre de la mano que presumen.
Las tarjetas se ingresarán como tres cadenas de 2 caracteres o se concatenarán como una sola cadena de 6 caracteres (lo que prefiera su implementación), donde el primero de cada par es el rango (2 ... 9, T, J, Q, K, A) y el segundo significa el palo (H, C, D, S).
Se aplican las reglas estándar de golf: escriba un programa o función que acepte esta entrada y genere el nombre de la mano como se detalla anteriormente.
Puede suponer que la entrada será válida (rangos y palos en el rango anterior, sin tarjeta repetida) y en cualquier caso que prefiera, pero no estará en ningún orden en particular.
La salida debe estar en mayúsculas, en minúsculas o en mayúsculas razonables, por ejemplo, el título o la oración. Los rangos numéricos se deben detallar, por ejemplo, "decenas" no 10s.
Muestra de entradas y salidas:
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"
Este es mi primer intento de desafío en este sitio, sugiera mejoras pero sea amable :)
fuente
"6D6C6S"
como un caso de prueba ya que seis es un plural imparRespuestas:
Rubí,
384, 320Acepta una serie de cadenas de dos caracteres.
Traduce los valores de pip en valores hexadecimales e identifica las manos en función de cuántos valores de pip distintos hay.
Anotado:
fuente
Python 2 ,
788, 715, 559, 556, 554, 546, 568,522 bytes* ahora pasa los 'seis' * ¡gracias a Ben Frankel por salvar 46 bytes!
Pruébalo en línea!
¡Gracias por un primer desafío genial!
fuente
D.get(a, b)
significa acceder al valor en el dict D en la clave a, con el valor predeterminado b si no se encuentra la clave. Es lo mismo que escribirD[a] if a in D else b
, que es lo mismo que escribirD[a] if a in D.keys() else b
.PHP,
413405398409408406398 bytesDesafortunadamente, PHP no admite referencias de matriz anidadas dentro de cadenas;
eso habría ahorrado otros
65 bytes.Ejecutar
echo <hand> | php -nR '<code>
o probarlo en línea .Descompostura
Requiere PHP> = 5.6 (para
e[...]
)fuente
Python 2 - 583 bytes
Soy demasiado nuevo para poder comentar publicaciones, así que solo publico mi versión de Python Solusion.
Se solucionó el problema con 'es' para pareja y tres de seis. Gracias a Not that Charles
Un poco más legible con algunos comentarios
fuente
j=0; if [z]*3==v:r="three %ss"%i(z)
aif [z]*3==v:r="three %ss"%d[z][0]
Pero ahorra solo 1 byte