Introducción
El 26 de agosto de 2017, Floyd Mayweather, Jr. se enfrentará a Conor McGregor en un combate de boxeo.
¡Ambos participantes recibirán la increíble cantidad de 100 millones de dólares!
Desafortunadamente, todavía no tenemos el dinero, pero ya podemos preparar el gran maletín que contendrá todos los billetes.
_________________________
| |
|=======================================|
| $ $$$$$ $$$$$ $ $ |
| $ $ $ $ $ $ $$$ $$$ |
| $ $ $ $ $ $ $$$ $ |
| $ $$$$$ $$$$$ $ $ |
|_______________________________________|
El maletín se compone de _
, |
, =
y$
.
Tiene un tamaño de 41 caracteres de ancho (ignorando las nuevas líneas) y 6 de alto (+2 para el identificador).
Desafío
Sin entrada, escriba un programa completo para generar un maletín 2D (ver arriba).
Puntuación
Este es el código de golf , por lo que gana la solución más corta (en bytes).
Respuestas:
Chicle, 55 bytes
Probablemente sea posible hacer algo de magia de eliminación de encabezado, ¡pero no soy tan bueno como Dennis!
Pruébalo en línea!
fuente
Gelatina ,
9275 bytesPruébalo en línea!
¿Cómo?
Paso 1. Construya una lista de las filas de la mitad derecha de un maletín vacío, ignorando los espacios finales:
Paso 2: transforma eso en un maletín vacío completo:
Paso 3: ¡Muéstrame el dinero!
fuente
JavaScript (ES6),
187184 bytes¿Cómo?
La salida se construye utilizando estos 16 patrones únicos:
Manifestación
Mostrar fragmento de código
fuente
05AB1E , 80 bytes
Pruébalo en línea!
Explicación
El esquema básico del maletín:
05AB1E , 41 bytes
Pruébalo en línea!
Explicación de la sub explicación (primera parte):
Convertí el diseño general cortando el diseño a la mitad, reemplazando todos los caracteres con 2-6 y finalmente convirtiéndolo en base 255 y reconstruyendo la forma usando
5
como delimitador de nueva línea.Es el número que se expresa en la base 255, y la conversión de la base 6 es ...
Luego, dividir eso en cinco, reflejar y unirse con nuevas líneas nos hace ...
Explicación de la subexplicación (segunda parte):
¿Comienza a ver a dónde va esto? A continuación, comprimo el patrón interno como una cadena base-255:
Cual es:
Convierte a binario:
Para cada uno de esos caracteres, reemplace un espacio con el siguiente carácter, iterativamente:
Finalmente, reemplaza los personajes con lo que se supone que son.
Por la pérdida:
Al comprimirlo como dos patrones separados, ahorro 20 bytes en:
Cual es:
Convertido a base-10:
92 bytes más la transliteración, que sumaría aproximadamente 105.
fuente
SOGL ,
5857 bytesExplicación:
Pruébalo aquí!
54 bytes ( ¿compitiendo? )
El comando utilizado aquí es
╥
- palendromize, que solo funcionaba en cadenas, pero también estaba documentado para matrices . (actualmente solo se implementa en el intérprete en línea) ¡Pruébelo aquí!
fuente
PHP, 117 bytes
Me entristece que no haya nada más corto que el enfoque perezoso: gzip la cadena y codifíquelo en base64:
Compresión personalizada: 188 bytes
168 164 159 152151 bytes con una adaptación de la idea de officialaimm :Las líneas pueden verse como un mapa de bits entre un carácter de límite (espacios para los dos primeros, canalización después de eso), con espacio como
0
y otro carácter como1
.Invertir las líneas 3 y 8 les dio un valor
0
, por lo que podría cambiar todos los valores en 6 bits.La matriz contiene los mapas de bits (convertidos a base 34; pero solo 7 valores: el octavo elemento se omite, un elemento vacío también se evalúa
0
). Base 35 también funcionaría; pero la base 33 tiene valores más largos y la base 36 necesitaría un valor más citado.La cadena contiene el límite
0
y los1
caracteres en ese orden para cada línea (omitiendo el último carácter, porque las líneas 3 y 8 no necesitan1
caracteres, ya que no tienen ningún conjunto de bits).Compresión personalizada por Jörg,
159156bytes :fuente
Jalea , 114 bytes
Pruébalo en línea!
fuente
Braingolf , 267 bytes
Pruébalo en línea!
Tan golfista ...
fuente
/// , 155 bytes
Pruébalo en línea!
Me encanta cuando /// puedo competir.
Explicación:
Esto funciona definiendo reemplazos comunes como
$$$$$
, luego definiendo meta-reemplazos que incluyen los reemplazos originales.Más en profundidad:
En primer lugar, la única característica de /// es su
/pattern/replacement/
sintaxis y su capacidad de usar barras diagonales inversas para escapar de otras barras diagonales inversas y barras diagonales. Esta información es importante en la explicación.El primer patrón / reemplazo en el código es solo para fines de golf (y se detalla aquí ). Se reemplaza
~
con//
, por lo que el código resultante se ve así:Luego se hacen un montón de reemplazos básicos. Algunos confían en otros (meta-reemplazos), pero la tabla de reemplazos se ve así (código envuelto en
`
s):Los meta-reemplazos aquí son cosas como
/&/%$$/
. Esto toma el reemplazo ya existente$$$
y lo usa para definir un nuevo reemplazo$$$$$
.Luego vienen los reemplazos muy grandes. El primero reemplaza
9
con$ $ $ $ $ $
y el segundo reemplaza8
con:Tenga en cuenta los espacios finales.
Luego, todos estos reemplazos se utilizan en la siguiente cadena:
Para obtener la salida deseada.
fuente
Python 2 ,
221 205 197 196193 bytesa="6ZBRS533| $"
yb="70JYF0U7|"
Pruébalo en línea!
Explicación:
Cada línea está en una forma genérica de
pup
dondep
es un carácter de límite yu es una cadena con dos caracteres únicos (para cada línea) que se pueden representar con 1 y 0. Por ejemplo, la línea 5 es:| $ $ $ $ $ $ $$$ $$$ |
Tiene | como carácter de límite y la cadena central contiene solo
y
$
. La cadena del medio se puede representar por:111011101101110110111011000111000111111
Ahora esta cadena binaria se puede representar con un número de 36 bases:
6JNFT2RJ
Podemos representar todas las líneas mediante una cadena definitiva junto con la cadena de 36 bases, el carácter de límite y los caracteres utilizados en la cadena central de la siguiente manera:
Por lo tanto, podemos descomprimir la cadena base 36 (después de extraerla de la cadena definitiva) a una cadena binaria, reemplazar 1 y 0 por los caracteres (también obtenidos de la cadena definitiva) utilizados en la cadena central y pegar con caracteres de límite en ambos extremos . Por lo tanto, se obtiene la cadena requerida.
fuente
C,
415402397 bytesPruébalo en línea!
fuente
Retina ,
140137129 bytes-3 bytes gracias a @Neil
Pruébalo en línea!
fuente
1
s para nada más, ¿no puedes escribir$*<space>
directamente?C (gcc) ,
388386302 bytesPruébalo en línea!
fuente
05AB1E , 121 bytes
Pruébalo en línea!
fuente
JavaScript (ES6),
177166 bytesLa cadena contiene una colección de caracteres para mostrar junto con la cantidad de veces que se repetirá. Si un personaje no se repite, se puede omitir el número de veces.
Las ejecuciones de cadena repetidas se optimizan almacenando en las variables
r
ys
.Retazo:
fuente
Python 2 , 135 bytes
Pruébalo en línea!
fuente
Carbón , 52 bytes
Pruébalo en línea! El enlace es a la versión detallada del código. Explicación:
Imprime la mitad izquierda del maletín.
Prepare el cursor para que la cadena comprimida se pueda imprimir directamente después de reflejar. (Poner el movimiento hacia abajo después del reflejo o antes de que la cuerda comprimida cambie su significado).
Reflexiona para completar el maletín.
Imprima la cantidad como una cadena comprimida. (Lamentablemente, este fue el enfoque más corto, ya que de lo contrario
M
consumió demasiados bytes).fuente