Aquí hay una matriz que representa un mazo de cartas estándar, que incluye dos comodines.
[
"AS", "2S", "3S", "4S", "5S", "6S", "7S", "8S", "9S", "10S", "JS", "QS", "KS",
"AD", "2D", "3D", "4D", "5D", "6D", "7D", "8D", "9D", "10D", "JD", "QD", "KD",
"AH", "2H", "3H", "4H", "5H", "6H", "7H", "8H", "9H", "10H", "JH", "QH", "KH",
"AC", "2C", "3C", "4C", "5C", "6C", "7C", "8C", "9C", "10C", "JC", "QC", "KC",
"J", "J"
]
Está compuesto de esta manera:
- Hay cuatro trajes; corazones, picas, diamantes y tréboles (H, S, D, C).
- Cada palo tiene una carta para los números del 2 al 10, más 4 cartas de 'imagen', As, Jack, Reina y Rey (A, J, Q, K).
- Para cada combinación de palo y valor, debe haber un elemento en la matriz, que es una cadena, y se compone del valor seguido por el palo (se permite un espacio en blanco entre estos).
- Además de eso, hay dos cartas Joker ('J').
- Escribe en cualquier idioma que quieras.
- ¡Golf arriba! Intente producir esta salida en el menor número de bytes.
- No importa en qué orden esté la salida.
code-golf
kolmogorov-complexity
AJFaraday
fuente
fuente
2
o con4
cualquier otra cosa para que ya no sea primo.Respuestas:
JavaScript (ES6),
6260 bytesPruébalo en línea!
fuente
Bash
4334 bytesPruébalo en línea!
fuente
brainfuck ,
200197 bytesPruébalo en línea!
Utiliza una celda negativa (+1 bytes para arreglar), envolviendo celdas (lotes de 'bytes para arreglar) y 0 en EOF (+2 bytes para eliminar la dependencia).
Salidas
Explicación:
fuente
05AB1E ,
2827252423 bytesPruébalo en línea.
-1 byte gracias a @Emigna que elimina el
S
after"HSDC"
, porque loâ
hace implícitamente.Explicación:
Consulte este consejo mío de 05AB1E (sección ¿Cómo comprimir cadenas que no forman parte del diccionario? ) Para comprender por qué
.•-Ÿ•
es"ajqk"
y.•ôì•
es"cdhs"
.fuente
brainfuck ,
550504 bytesPruébalo en línea!
Antigua respuesta, también en línea!
fuente
Java 10,
1531511257775 bytes-28 bytes gracias a @ OlivierGrégoire .
-50 bytes gracias a @mazzy .
Pruébalo en línea.
Explicación:
fuente
v->{var r="J J";for(var s:"HSDC".split(""))for(var c:"A,2,3,4,5,6,7,8,9,10,J,Q,K".split(","))r+=" "+c+s;return r.split(" ");}
(125 bytes)"AJQK2345678910".replace("1?.","$0H,$0S,$0D,$0C,")+"J,J"
dividirlo.$0
era posible en Java. TIL, gracias. :)APL (Dyalog Unicode) , 29 bytes
1 byte guardado gracias a Probie al usar en
1+⍳9
lugar de1↓⍳10
Pruébalo en línea!
Este es un programa completo. En el enlace TIO, he habilitado el boxeo para que se puedan distinguir los elementos individuales de la matriz.
Aquí está la salida en caja.
'JJ',
2 comodines concatenados a,
la forma desvencijada de∘.,⍨
la matriz creada al concatenar cada combinación de'HCDS'
esta cadena contra'AKJQ',
esta cuerda con⍕¨
las formas en cadena de cada uno de1+⍳9
los números 2..10 (1 más el rango 1..9)fuente
-
sangrado.Befunge-98 (FBBI) , 75 bytes
Pruébalo en línea!
Estructura del programa
Al principio, la pila se llena con
0
's, yj
no salta sobre la inicialización. La inicialización empuja4 * 13 = 52
, que es el contador del programa. En las siguientes iteraciones, el seguimiento3
hace que el puntero salte sobre esta parte.Código que imprime 10:
Terminación:
fuente
R , 65 bytes
Pruébalo en línea!
-2 Bytes gracias a las sugerencias de @Giuseppe y @JayCe
fuente
paste
. @Giuseppe también.x<-'J'
dentroouter
y luego reutilizarlox
como una variable en lac()
declaración más externa para eliminar un byte: ¡ Pruébelo en línea!Powershell,
63615956 bytes-3 bytes: gracias ConnorLSW
fuente
2..10+'AJQK'[0..4]|%{"$_`H";"$_`S";"$_`D";"$_`C"};,'J'*2
Perl 5 , 41 bytes
Pruébalo en línea!
fuente
Python 3 ,
6764 bytesPruébalo en línea!
Python 2 ,
78767468 bytesPruébalo en línea!
Alt:
Python 2 , 68 bytes
salvado
fuente
print
, no podemos hacerlo[*[a+b for a in['10',*'A23456789JQK']for b in'CHSD'],*'JJ']
en 59 bytes. La solución de Haskell no necesita salida a stdout, ¿por qué Python?K (ngn / k) , 30 bytes
Pruébalo en línea!
!9
es la lista0 1 ... 8
2+!9
es la lista2 3 ... 10
$
Encadenar,
concatenar,'/:
concatenar cada uno con cada derecho, es decir, producto cartesiano; normalmente es,/:\:
o,\:/:
pero a la derecha solo tenemos escalares ("SHDC"
), por lo que podemos usar en'
lugar de\:
"JJ",/
unirse (reducir concat) a la lista de la derecha utilizando"JJ"
como valor inicial para la reducciónfuente
MS-SQL, 137 bytes
Se devuelve una matriz de valores en SQL como filas de consulta separadas. Utiliza la
STRING_SPLIT
función introducida en SQL 2016 .Incluye los comodines al agregar dos trajes de "cadena en blanco" para aprovechar la "J" existente para Jack, y luego filtrar las filas que no queremos. Más corto que usar
UNION ALL
declaraciones para agregar los comodines.fuente
Procedure expects parameter 'separator' of type 'nchar(1)/nvarchar(1)'
. También sería útil para jugar al golf si el valor predeterminado es una coma si omite el segundo parámetro, pero tampoco es compatible. Otro elemento para elGolfSQL
idioma que probablemente nunca escribiré :)Ruby , 61 bytes
Pruébalo en línea!
fuente
->{
...}
? Se ejecuta solo y no necesita parámetros, por lo que no debería ser una lambdaC # .NET, 114 bytes
Puerto de mi respuesta Java (crédito a @mazzy ) .
Pruébalo en línea.
Alternativa interesante de 119 bytes por @Corak .
Pruébalo en línea.
Si un en
System.Collections.Generic.IEnumerable<string>
lugar destring[]
es un resultado aceptable, el final.ToArray()
puede descartarse para que se convierta en 109 bytes .Explicación:
fuente
PHP,
1089997 BytesPruébalo en línea!
Pruébalo en línea! (Editar 1)
Código
Intenté usar funciones puramente php, pero bytecount fue menor con un bucle :(
Salida (usando
print_r
)Editar
Gracias a @JoKing por sugerir cambios
explode(" ","H$t S$t D$t C$t")
para[H.$t,S.$t,D.$t,C.$t]
fuente
[H.$t,S.$t,D.$t,C.$t]
sería más corto que explotar?array_push($arr, $item1,$item2,$item3...$itemN)
así, agradableSMBF , 169 bytes
␀
representa un byte NUL literal\x00
.Esta es la solución ingenua.
Debido a que este programa contiene un byte NUL, no hay una manera fácil de usar TIO. Ejecute esto en el intérprete de Python usando
fuente
$0.value+='\0'
.Japt,
323026 bytesPruébalo
fuente
Lote, 118 bytes
fuente
J , 41 bytes
Pruébalo en línea!
fuente
'J';^:2,;&.>{_13<\'10';;/'23456789AJKQHCDS'
un poco más simple pero para 43. Siento que hay más para afeitarse aquí ... pero no puedo ver cómo.R ,
6766 bytesPruébalo en línea!
Solo un byte más que la solución de golf de digEmAll . Inspirado por la solución de Giuseppe para este desafío relacionado , ¡el mismo Giuseppe que jugó un byte por respuesta!
Estoy publicando por separado, ya que es un enfoque ligeramente diferente aprovechando el hecho de que 4 no es un divisor de 13 y que la salida no necesita estar en ningún orden en particular.
fuente
C (gcc) ,
126137133 bytesPruébalo en línea!
+11 bytes para estar más completo gracias a Jakob.
-4 bytes gracias a Zachary
Sobre todo abusar del preprocesador para comprimir los trajes. Probablemente podría ser superado, pero es bastante eficiente considerando todo.
fuente
c
no es una "[...] 'función' extraña", sino una declaración de matriz almacenada en una macro. Tal forma de salida es, que yo sepa, no está permitida por defecto.c
en la fuente creará una nueva copia de la matriz en el ejecutable resultante (excluyendo optimizaciones). Por lo tanto, el códigochar *a[] = c; char *b[] = c;
crea dos copias profundas de c. Este comportamiento es lo que esperarías de una función también.c=0;
un envío válido, que se vec
como una función?#define z 0
válido. El razonamiento es que:c=0; c++; x=c;
los resultados enx == 1
lo quec
no actúa muy parecido a una función. Mientras tanto#define z 0 c=z; c++; x=z;
, resultax == 0
quez
actúa como una función.z=0;/**/c=z;c++;x=z;
da como resultadox==0
, por lo tanto,z
actúa como una función.Javascript (ES6)
777472 bytesEste es un programa completo.
fuente
BTJ,J,${[..."A23456789JQK","10"].map(c=>[..."SDHC"].map(s=>c+s))}BT.splitBT,BT
(donde BT es una tecla de retroceso).C (gcc, clang), 138 bytes
El enfoque es codificar las secuencias en matrices de caracteres.
Salida de muestra
Pruébalo en línea!
fuente
printf
para deshacerse de todos losputchar
s.Oracle SQL, 164 bytes
No es un lenguaje de golf pero ...
Pruébelo en línea - SQL Fiddle
fuente
lua ,
156127138129 bytesPruébalo en línea!
Basado en el código de Jo King. Como sugirió en los comentarios, mi respuesta original no era válida (todavía estoy aprendiendo cómo funciona el golf de código 😬), y vinculó una respuesta mejor y válida. Luego lo hice más pequeño.
Solución original (156 bytes):
Solo quiero decir que soy nuevo en esto de Code Golf, así que si estoy haciendo algo mal, no dudes en decirme. Sé que esta respuesta no es una de las más pequeñas, solo quería desafiarme.
Si tiene sugerencias para reducir mi código, también puede decirlo. :)
fuente
r
? O necesita imprimirlo en STDOUT, o cambiar esto a una función y regresarr
Perl 6 ,
4342 bytesIntentalo
Pruébalo con Jo King
Expandido:
fuente
QBasic 4.5,
114142127 bytesNotas de lanzamiento:
r$
. Todo el resto del código es más o menos lo mismo.Salida de muestra
Si agregamos este fragmento a nuestro código, podemos ver lo que se incluye en
r$
:¿Pero cómo? Bueno, déjame decirte:
fuente
STDOUT
está explícitamente prohibidaa$
yb$
vars y usando una línea algo así comor$(i)=MID$("JQKA2345678910",1+m,1-(m=12))+MID$("CDHS",(i-1)\13+1,1)
PRINT "<output>"
Pyth,
2625 bytesGuardado un byte gracias a hakr14.
Pruébalo aquí
Explicación
fuente
+\J+\J
y+*2]\J
son equivalentes y ambos de 6 bytes, pero este último se considera una mejor forma, ya que permite agregar hasta 10 copias antes de que se necesiten bytes adicionales.+\J+\J
se puede reemplazar con+ B\J
para guardar un byte.