Considere estos 15 patrones de naipes ASCII (as a través de Joker y el reverso), donde X
hay un marcador de posición para el símbolo del palo : (se ven mejor con menos espacio entre líneas)
------------- ------------- ------------- ------------- ------------- ------------- ------------- ------------- ------------- ------------- ------------- ------------- ------------- ------------- -------------
|AX | |2X | |3X | |4X | |5X | |6X | |7X | |8X | |9X | |10X | |JX | |QX | |KX | |J | |* * * * * * *|
| ------- | | ------- | | ------- | | ------- | | ------- | | ------- | | ------- | | ------- | | ------- | | ------- | | ------- | | ------- | | ------- | |O ------- | | * * * * * * |
| | | | | | | | | | | | | |X X| | | |X X| | | |X X| | | |X X| | | |X X| | | |X X| | | |X X| | | |X | | | |X | | | |X | | |K | | | |* * * * * * *|
| | | | | | X | | | | X | | | | | | | | | | | | | | | | X | | | | X | | | | | | | | X | | | | | | | | | | | | | | |E | J | | | * * * * * * |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |X X| | | |X X| | | | | | | | | | | | | | |R | O | | |* * * * * * *|
| | X | | | | | | | | X | | | | | | | | X | | | |X X| | | |X X| | | |X X| | | | X | | | | | | | | J | | | | Q | | | | K | | | | K | | | * * * * * * |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |X X| | | |X X| | | | | | | | | | | | | | | | E | J| |* * * * * * *|
| | | | | | X | | | | X | | | | | | | | | | | | | | | | | | | | X | | | | | | | | X | | | | | | | | | | | | | | | | R | O| | * * * * * * |
| | | | | | | | | | | | | |X X| | | |X X| | | |X X| | | |X X| | | |X X| | | |X X| | | |X X| | | | X| | | | X| | | | X| | | | | K| |* * * * * * *|
| ------- | | ------- | | ------- | | ------- | | ------- | | ------- | | ------- | | ------- | | ------- | | ------- | | ------- | | ------- | | ------- | | ------- E| | * * * * * * |
| XA| | X2| | X3| | X4| | X5| | X6| | X7| | X8| | X9| | X10| | XJ| | XQ| | XK| | R| |* * * * * * *|
------------- ------------- ------------- ------------- ------------- ------------- ------------- ------------- ------------- ------------- ------------- ------------- ------------- ------------- -------------
Escriba un programa que tome una cadena que denote una secuencia de tarjetas separadas por espacios usando ...
A 2 3 4 5 6 7 8 9 10 J Q K
seguido por uno deC D H S
(para tréboles, diamantes, corazones y espadas) para las 52 cartas estándar.- Un single
R
para un Joker. - Un sencillo
B
para el reverso (una carta boca abajo).
Entonces, la cadena B AS KH 10C R JD
denota una carta boca abajo, seguida de un as de espadas, seguido de un rey de corazones, seguido de diez clubes, seguido de un Joker, seguido de una jota de diamantes.
Su programa necesita imprimir las cartas de juego ASCII correspondientes en stdout, reemplazando X
con el símbolo del palo apropiado.
Por ejemplo, la salida para B AS KH 10C R JD
sería
------------- ------------- ------------- ------------- ------------- -------------
|* * * * * * *| |AS | |KH | |10C | |J | |JD |
| * * * * * * | | ------- | | ------- | | ------- | |O ------- | | ------- |
|* * * * * * *| | | | | | |H | | | |C C| | |K | | | | |D | |
| * * * * * * | | | | | | | | | | | C | | |E | J | | | | | |
|* * * * * * *| | | | | | | | | | |C C| | |R | O | | | | | |
| * * * * * * | | | S | | | | K | | | | | | | | K | | | | J | |
|* * * * * * *| | | | | | | | | | |C C| | | | E | J| | | | |
| * * * * * * | | | | | | | | | | | C | | | | R | O| | | | |
|* * * * * * *| | | | | | | H| | | |C C| | | | | K| | | D| |
| * * * * * * | | ------- | | ------- | | ------- | | ------- E| | ------- |
|* * * * * * *| | SA| | HK| | C10| | R| | DJ|
------------- ------------- ------------- ------------- ------------- -------------
Puede tomar la entrada de stdin o escribir una función que tome una cadena.
La presentación con el menor número de caracteres gana.
Bonificación: resta 30 de tu recuento de personajes si usas los símbolos de traje negro Unicode en♣ ♦ ♥ ♠
lugar de C D H S
en tu salida. (La entrada siempre usa C D H S
).
Notas
- Puede haber más de 54 tarjetas en la cadena de entrada y puede haber duplicados de cualquier tarjeta.
- No debería haber salida si la entrada es la cadena vacía.
- No debe haber espacios finales además de (opcionalmente) los dos que forman las esquinas derechas de la última carta.
- Puede suponer que la entrada es válida.
- Actualización: la etiqueta inferior derecha de las tarjetas estándar se ha invertido, por lo que el valor está en la esquina. La etiqueta Joker inferior derecha no ha cambiado.
fuente
Respuestas:
JavaScript (E6) 542 (572 - bono 30)
553 564 5763 tipos de formas:
La
z
cadena (comprimida) contiene los bloques de construcción básicos paraNota de bonificación El código para ganar la bonificación de 30 puntos es de 29 caracteres.
Prueba en la consola FireFox / FireBug
Salida
Código no golfizado
fuente
C # - 906
Programa C # bastante grande y simple que lleva las entradas y salidas de la línea de comandos a la salida estándar. Probablemente haya mucho que todavía se pueda jugar al golf, he descubierto algunos bytes aburridos mientras escribo esto, pero eso tendrá que esperar. No creo que vaya por el bono de personaje de traje Unicode.
Código de golf:
Ejemplo de salida para
cardGolf.exe 7H QH 3S B R
La mayor parte de la representación se realiza mediante el
P
método anónimo, que toma una posición, longitud, cadena y ancho, y representa un rectángulo de la cadena de extremo a extremo. Por ejemplo, la parte posterior de la tarjeta solo se"* "
repite. ElT
método anónimo es una versión modificada de una que utilicé para una tarea anterior, que representa muchos rectángulos. Sin embargo, es bastante voluminoso y solo me permitiría representar los bordes y el fondo en menos bytes, lo que probablemente no valga la pena. Una versión reducida deT
es laW
que representa las celdas en lugar de los rectángulos, y tampoco se usa, pero se usa una versión en línea para representar las tarjetas de valor del 2 al 10. Tenga en cuenta que el código no utilizado fue eliminado para el recuento de bytes, lo dejo puesto porque puedo terminar usándolo, y los uso para probar.El programa simplemente recorre cada línea de salida (13 de ellas) y luego renderiza cada tarjeta por turno, y luego extrae 1 rebanada de ella, por lo que cada tarjeta se procesa en su totalidad 13 veces. Con el fin de espaciarlos, cada tarjeta se trata como un bloque de 16 por 13, y recorto cada línea de salida para eliminar los espacios finales (se eliminan los espacios de las esquinas).
Código formateado, con comentarios y código de concepto / prueba:
fuente
PowerShell , partitura 442 = (
509495472 bytes = (156 + 316 de la escritura de archivo) - 30 de bonificación)Pruébalo en línea!
Desenrollado:
Script de Powershell para crear el archivo tar
t
(ver TIO):fuente