Entrada
Ninguna
Salida
52 cartas. No hay duplicados Las tarjetas se representan como sus caracteres unicode, por ejemplo, 🂹.
Los puntos de código Unicode siguen el siguiente formato:
- Los primeros tres dígitos son
1F0
. - El siguiente dígito es
A
,B
,C
, oD
para espadas, corazones, diamantes y tréboles, respectivamente. - El siguiente dígito es a
1
travésC
yE
para los diversos números / tarjetas de cara.1
es as,2
-A
son las tarjetas de números, yB
,D
yE
son el sota, caballo y rey, respectivamente. (C
es el caballero, que no está en la mayoría de los mazos).
Salida de ejemplo:
🂶🃁🃛🃎🂧🂵🃗🂦🂽🂹🂣🃊🃚🂲🂡🂥🂷🃄🃃🃞🂺🂭🃑🃙🂪🃖🂳🃘🃒🂻🃆🂮🃍🂱🂴🃋🂸🃈🃅🃂🂨🃓🃉🂾🃇🂩🂢🂫🃔🃕 🂤🃝
Reglas:
- Este es el código de golf . La respuesta más corta gana.
- Las lagunas prohibidas están prohibidas.
- Tu mazo debe ser realmente aleatorio. Si se ejecuta 20 veces, se deben generar 20 salidas aleatorias (y muy probablemente únicas).
Nota
Si solo ve cuadros, instale las fuentes DejaVu .
Respuestas:
Jalea ,
25 2321 bytesUn enlace niládico que devuelve una lista de caracteres, o un programa completo que imprime el mazo barajado.
Pruébalo en línea!
¿Cómo?
fuente
JavaScript (ES6),
107106108 bytesMostrar fragmento de código
-1 byte gracias a @nderscore
JavaScript (ES6),
120119121 bytesVersión previa.
fuente
[...'ABCD']
antes visto . Eso es genial :)"ABCD".map(...)
. Estoy seguro de que hay razones razonables por las que ese es el caso.Python 3 ,
10694 bytes-5 bytes gracias a musicman523 (1. uso
sample(...,52)
como un equivalente en línea deshuffle
[gracias a totalmente humano]; 2. uso en~v&2
lugar dev%4<2
; más 1 byte adicional como consecuencia de que se puede eliminar un espacio)Pruébalo en línea!
fuente
sample
. Pruébalo en línea!v%4<2
a~v&2
para guardar un byte más.random
función podría ayudar allí. Otro byte en la parte superior comoor ~...
puede seror~...
.05AB1E ,
2221 bytesGuardado 1 byte gracias a carusocomputing .
Pruébalo en línea!
Explicación
fuente
…1F0A4£14L13KhJâ«Hç.r
para 21 bytes (editado porque olvidé eliminar a los caballeros). Sin embargo, te ayuda a atar la gelatina.Bash + coreutils, 56 bytes
Usamos
printf
escribir cada tarjeta en su propia línea, barajar las líneas y luego concatenar todas las líneas eliminando los caracteres de la nueva línea.Tenga en cuenta que aunque el
printf
comando coreutils requiere exactamente 8 dígitos hexadecimales después\U
, el Bash incorporadoprintf
nos permite omitir los ceros iniciales.fuente
echo 16iF09F8{2A,2B,38,39}{{1..9},A,B,D,E}0AP|dc|shuf|tr -d \\n
, pero el tuyo es mejor. No sabía acerca%b
.Python 3 , 112 bytes
Pruébalo en línea!
fuente
del
declaración se desglosa secuencialmente de izquierda a derecha. El primer elemento de ofa[::16]
es U + 1F0A0 PLAYING CARD BACK, que debe eliminarse. También necesitamos eliminar las tarjetas Knight y Joker que están atrapadas entre las 52 normales. Ver en.wikipedia.org/wiki/… .Python 3 , 107 bytes
¡Ahorré 6 bytes gracias a @totallyhuman y 3 gracias a @ CCB60!
Pruébalo en línea!
fuente
,sep=''
arregla los espacios, por supuesto, pero lo hace 112 bytesrandom.sample
! Dejaré que el OP decida sobre los espacios. Puedo agregar,sep=''
para deshacerme de ellos, y aún así guardar 6 bytes.PHP > = 7, 102 bytes
No hay un intérprete en línea disponible para el método IntlChar :: chr
PHP , 112 bytes
Pruébalo en línea!
PHP , 116 bytes
Pruébalo en línea!
PHP, 121 bytes
Pruébalo en línea!
fuente
APL (Dyalog) ,
4038 bytesMétodo de Jonathan Allan
(
...)
en la siguiente matriz⍳62
los primeros 62 enteros127136+
agregue 127136 a eso(
...)/
filtrar eso con el booleano⍳62
primeros 62 enteros16|
módulo 16180∨
MCD de 180 y que11>
si 11 es mayor que esos[
...]
seleccione los siguientes elementos?⍨52
baraja los primeros 52 enteros (elige 52 enteros aleatorios de una bolsa de los primeros 52 enteros)⎕UCS
convertir a los correspondientes símbolos en la U nicode C r incón dele S etSolución de la versión 16.0 (actualmente en beta) (33 caracteres)
(
...)
en la siguiente matriz⍳62
primeros 62 enteros16|
módulo 16180∨
MCD de 180 y que11>
si 11 es mayor que esos⍸
índices donde cierto127136+
agregue 127136 a eso[
...]
seleccione los siguientes elementos?⍨52
baraja los primeros 52 enteros (elige 52 enteros aleatorios de una bolsa de los primeros 52 enteros)⎕UCS
convertir a los correspondientes símbolos en la U nicode C r incón dele S etVieja solución
(
...)
en la siguiente matriz⍳14
los primeros 14 enteros12~⍨
excepto 12(
...)∘.,
Concatenado cartesianamente con⍳4
los primeros 4 enteros9+
agregado a 9,
desentrañar (aplanar) que16⊥¨
evaluar cada uno en la base 16126976+
agregar 126976 a eso[
...]
seleccione los siguientes elementos?⍨52
baraja los primeros 52 enteros (elige 52 enteros aleatorios de una bolsa de los primeros 52 enteros)⎕UCS
convertir a los correspondientes símbolos en la U nicode C r incón dele S etfuente
Carbón de leña , 50 bytes
Pruébalo en línea! El enlace es a la versión detallada del código. Crea la cadena de todos los 64 caracteres en el bloque, pero filtra las tarjetas no válidas a medida que se seleccionan al azar. (Hablando de eso, la selección aleatoria sin reemplazo de una cadena es de solo 11 bytes, en comparación con 17 para una matriz).
Editar: la sustracción de una matriz y otras mejoras de carbón vegetal han reducido el tamaño a 41 bytes: ¡ Pruébelo en línea!
fuente
Alice , 34 bytes
Pruébalo en línea!
Explicación
fuente
> <> ,
495049 bytesPruébalo en línea!
(+1 byte para mejorar la aleatoriedad)
Estoy interpretando que "aleatorio" significa "cada resultado posible tiene una probabilidad distinta de cero". Esta no es una distribución uniforme.
Hay dos etapas para este código. Primero, el pez pone todas las cartas en la pila, usando las dos primeras líneas. Comenzando con el as de espadas, el pez lo duplica y lo incrementa, luego verifica si el código hexadecimal de la carta anterior termina en 0, C o F multiplicando juntos x ( x -12) ( x -15), donde x es el mod de código de char 16, y comprobando si eso es cero. Si es así, elimina la carta ofensiva de la pila. Se repite hasta que la pila tiene 52 cartas, luego nada hacia la etapa 2:
Este fragmento de código baraja e imprime la pila. El
x
establece la dirección del pez al azar:v
y regresa a élx
sin hacer nada. La dirección izquierda es similar.{
, girando la pila completa hacia la izquierda, luego regresa alx
.x
.Está claro que se pueden producir todos los pedidos posibles de las cartas: en cualquier punto de la etapa 2, cada carta que aún no se ha impreso puede imprimirse a continuación si el pez nada hacia la derecha las suficientes veces. Esta técnica de barajar generalmente no mueve las cartas muy lejos si ya estaban cerca una de la otra, pero, de nuevo, tampoco baraja a mano .
fuente
R, 61 bytes
Muestre aleatoriamente el vector de representaciones enteras de los valores unicode de las tarjetas (que se pueden obtener de
utf8ToInt()
fucntion) y elimine las tarjetas de caballero / comodín no deseadas.fuente
C # (
146141 bytes)Demostración en línea
Utiliza un estilo extremadamente malo para barajar
Guid.NewGuid()
, pero es code-golf. Luego construye los pares sustitutos manualmente.fuente
Perl 5, 75 bytes
Tenga en cuenta que esto utiliza los puntos de código para las reinas como se indica en la pregunta (es decir, el último dígito
C
). Para los puntos de código reales (último dígitoD
), reemplace51,56
con47,52
.fuente
Java 8, 216 bytes
Explicación:
Pruébalo aquí
NOTA: No probado porque, aunque instalé la fuente vinculada, todavía veo cuadros. Probablemente tenga que reiniciar mi PC o algo así ...
fuente
Dyalog APL, 35 bytes
basado en la respuesta de Adám
usos
⎕io←0
fuente
Japt ,
51413922 bytesCon un poco de inspiración de la solución de Jonathan Jelly .
Pruébelo (o vea la salida con mayor
font-size
)Explicación
fuente