¡Trump necesita construir el muro y tú lo vas a hacer! Para construir su muro de manera más eficiente, he creado un patrón simple y repetible para que use:
__ __
| |_| |
___| |___
- - - -
- - - - - - -
- - - - - - - -
———————————————
Trump le dirá cuántos segmentos de muro necesita y usted los construirá para que se vean así.
Aquí está el patrón:
__ __ <-- 4-2-3-2-4 ' _ _ '
| |_| | <-- 3-1-2-1-1-1-2-1-3 ' | |_| | '
___| |___ <-- 3-1-7-1-3 '_| |_'
- - - - <-- 1-3-1-3-1-3-1-1 '- - - - '
- - - - - - - <-- 1-1-...-1-1 ' - -...- - '
- - - - - - - - <-- 1-1-...-1-1 '- - ... - -'
——————————————— <-- 15 Unicode U+2014
La entrada siempre será un entero> 0.
Casos de prueba:
1
__ __
| |_| |
___| |___
- - - -
- - - - - - -
- - - - - - - -
———————————————
2
__ __ __ __
| |_| | | |_| |
___| |______| |___
- - - - - - - -
- - - - - - - - - - - - - -
- - - - - - - -- - - - - - - -
——————————————————————————————
5
__ __ __ __ __ __ __ __ __ __
| |_| | | |_| | | |_| | | |_| | | |_| |
___| |______| |______| |______| |______| |___
- - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - -- - - - - - - -- - - - - - - -- - - - - - - -- - - - - - - -
———————————————————————————————————————————————————————————————————————————
Como necesita hacer esto rápido, ¡escriba el programa más corto posible!
Si ayuda, escribí el desafío primero, el título último;)
JavaScript (ES6),
116115 bytes¡ Ahorré un byte gracias a @Neil !
Explicación
Prácticamente lo mismo que el método CJam de @Mauris , pero sin el mapeo de caracteres.
Las partes de la pared están en el formato:
porque si repites cada línea 15 veces obtienes:
y después de cortar solo los últimos 15 caracteres que obtienes:
Sin golf
Prueba
Mostrar fragmento de código
fuente
.slice(-15)
lugar?__ __ n| |_| | n| |___n - n- n -n—
Jolf , 135 bytes
Se puede hacer golf considerable.Desactive la impresión bonita y borre la salida para obtener un mejor resultado. Pruébalo aquí! . Además, use esto para probar un número arbitrario con más facilidad.Agregaré una explicación más tarde.
fuente
Haskell,
116118108 bytesEjemplo de uso:
Esto usa la misma estrategia que otras respuestas aquí: cada línea de la pared es un ciclo del patrón, por ejemplo, "-" (guión + espacio) para la segunda última línea. Repita cada patrón, tome 15 caracteres para obtener un segmento de pared, repita nuevamente y tome
15*n
caracteres para losn
segmentos.Editar: @Mauris encontró 10 bytes. ¡Gracias!
fuente
Utilidades Bash + Linux (
247186180 bytes)Dado que los caracteres no imprimibles se han utilizado generosamente en la construcción del script anterior, aquí hay un hexdump:
fuente
PowerShell,
103100 caracteres (105 bytes en disco, 102 sin lista de materiales)Prácticamente lo mismo que el método @ user81655 .
Versión sin golf
Ejemplo de uso
fuente
param($c);' __ __n | |_| |n___| |n- n -n- n—'-split'n'|%{-join($_*15)[0..14]*$c}
PHP 5.4, (
182175 caracteres)Versión sin golf
[7 caracteres guardados por seguir la sugerencia de Blackhole. ]
Otra versión con menos bytes pero más caracteres.
PHP 5.4, (176 caracteres, 178 bytes)
Simplemente reemplace 15 instancias de m-dash con un guión con la función str_repeat
fuente
$s
, úsela directamente en su bucle:foreach([…,…] as $d)
2) Elimine el espacio a menos que antes$d
:foreach(… as$d)
3) Use una nueva línea en lugar de"\n"
.C, 148 bytes
La puntuación excluye la nueva línea innecesaria antes de lo
f(n)
cual se incluye para mayor claridad.los números mágicos
p
codifican los caracteres para el muro en la base 4, que se reconstruyen a partir de la cadena" -|_"
0,1,2,3 respectivamente16843009
en hexadecimal es0x1010101
. Esto se utiliza para las líneas con-
ellos.Debido a que
_
está codificado por3
, la línea inferior puede codificarse simplemente como-1
, que es el número con todos los bits establecidos1
.fuente
#define q
y simplemente codificar los valores.Vitsy , 121 bytes
Cómo hago esto es accediendo a cada línea una a la vez, ingresando veces, dándome pilas con el contenido de cada línea. Luego, saco una línea a la vez. Si alguien quiere que le dé una explicación más profunda, solo pregunte (actualmente estoy abriendo regalos, así que ...).
Pruébalo en línea!
fuente
PHP5.5,
182172 bytes168 bytesbasado en la respuesta de @ kuldeep.kamboj, que en realidad es de 212 bytes en el momento en que escribo esto, pero 182 caracteres. Desearía que el muro fuera un poco más alto, entonces podría hacer algo más de optimización ;-)
este es de 168 bytes, gracias a @ JörgHülsermann
Este es de 172 bytes
Este es de 182 bytes :-)
versión sin golf
fuente
$x=$r(' ',3);
se puede acortar a$x=' ';
as$z
Python 3,
132122120 bytesSin golf:
fuente
)for s in[
...Python 2, (161 caracteres, 191 bytes)
fuente
SOGL V0.12 , 32 bytes
Pruébalo aquí!
Explicación:
fuente
Vim, 90 llaves
Suponiendo que la entrada está en un búfer, lo siguiente hará el trabajo (nueva línea solo para facilitar la lectura)
donde
^M
es un return,^[
es escape,^K
es ctrl+ky^V
es ctrl+v.Es muy probable que esto se pueda reducir bastante, ya que podría haber formas mucho mejores de generar el patrón.
fuente
Java 11,
236235231229 bytesPruébalo en línea.
NOTA: Java 11 aún no está en TIO, por lo que
String.repeat(int)
se ha emulado conrepeat(String,int)
(para el mismo número de bytes).Explicación:
fuente
Powershell + archivo, 92 bytes
guardar powershell en
get-trumpwall.ps1
(40 bytes)guardar el archivo de datos con el nombre
f
y los datos contienen el símbolo Unicode y solo Linux LF (52 bytes):volcado hexadecimal:
Ejemplo de uso
fuente