¡Eres el anfitrión de los Juegos Olímpicos y necesitas construir una piscina fantástica por el bien de la ocasión, pero los supervisores a menudo cambian de opinión con respecto a las dimensiones y necesitan una forma rápida de reconstruirla con el tamaño solicitado!
Dados dos enteros, L
y x
, su tarea es construir una piscina de longitud L
y x
carriles.
¿Cómo se construye una piscina?
Contiene un cuadrado interno, cuyas paredes horizontales están hechas de
L
guiones consecutivos (-
), y cuyas paredes verticales están hechas de3x - 1
barras (|
). Además, hay 4+
signos en cada esquina. Veamos un ejemplo (L = 10, x = 2
):+ ---------- + El | El | El | El | El | El | El | El | El | El | + ---------- +
Cada carril tiene un ancho de 2 unidades verticales. El cuadrado interior está lleno de
x-1
separadores de carriles, que consisten en símbolosL
horizontales consecutivos:
. Después de colocar los separadores de carril, nuestra piscina debería verse así:+ ---------- + El | El | El | El | | :::::::::: | | El | El | El | El | + ---------- +
Una piscina también contiene un relleno (un cuadrado exterior), cuyas paredes horizontales son (L + 4)
-
sy cuyas paredes verticales son (3x + 1)|
s, que rodea el cuadrado interior:+ -------------- + El | + ---------- + | El | El | El | El | El | El | El | El | El | | :::::::::: | | El | El | El | El | El | El | El | El | El | El | + ---------- + | + -------------- +
¡Y esa es nuestra piscina olímpica **!
Especificaciones:
Por motivos de diseño y funcionalidad, tiene la garantía de que
100 ≥ L ≥ 10
y15 ≥ x ≥ 2
.La salida debe ser exactamente como se muestra. La salida de una agrupación "construida verticalmente" * no está permitida.
Se permiten espacios finales y principales.
Puede tomar entrada y proporcionar salida a través de cualquier método estándar .
Se aplican las lagunas predeterminadas .
Ejemplos / Casos de prueba:
L = 20, x = 3 + ------------------------ + El | + -------------------- + | El | El | El | El | El | El | El | El | El | | :::::::::::::::::::: | El | El | El | El | El | El | El | El | El | El | | :::::::::::::::::::: | El | El | El | El | El | El | El | El | El | El | + -------------------- + | + ------------------------ + L = 50, x = 5: + ------------------------------------------------- ----- + El | + ------------------------------------------------- - + | El | El | El | El | El | El | El | El | El | | :::::::::::::::::::::::::::::::::::::::::::::::::: : | El | El | El | El | El | El | El | El | El | El | | :::::::::::::::::::::::::::::::::::::::::::::::::: : | El | El | El | El | El | El | El | El | El | El | | :::::::::::::::::::::::::::::::::::::::::::::::::: : | El | El | El | El | El | El | El | El | El | El | | :::::::::::::::::::::::::::::::::::::::::::::::::: : | El | El | El | El | El | El | El | El | El | El | + ------------------------------------------------- - + | + ------------------------------------------------- ----- + L = 10, x = 15 + -------------- + El | + ---------- + | El | El | El | El | El | El | El | El | El | | :::::::::: | | El | El | El | El | El | El | El | El | El | El | | :::::::::: | | El | El | El | El | El | El | El | El | El | El | | :::::::::: | | El | El | El | El | El | El | El | El | El | El | | :::::::::: | | El | El | El | El | El | El | El | El | El | El | | :::::::::: | | El | El | El | El | El | El | El | El | El | El | | :::::::::: | | El | El | El | El | El | El | El | El | El | El | | :::::::::: | | El | El | El | El | El | El | El | El | El | El | | :::::::::: | | El | El | El | El | El | El | El | El | El | El | | :::::::::: | | El | El | El | El | El | El | El | El | El | El | | :::::::::: | | El | El | El | El | El | El | El | El | El | El | | :::::::::: | | El | El | El | El | El | El | El | El | El | El | | :::::::::: | | El | El | El | El | El | El | El | El | El | El | | :::::::::: | | El | El | El | El | El | El | El | El | El | El | | :::::::::: | | El | El | El | El | El | El | El | El | El | El | + ---------- + | + -------------- +
Este es el código de golf , por lo que gana el código más corto en bytes .
* El agua podría salir si se construye verticalmente: P
** Sí, soy consciente de que cuanto más sean los carriles y cuanto más corta sea la piscina, ¡menos se verá el dibujo como una piscina!
x>=L
?L=10
yx=15
? ¿No habría más carriles de los que se podrían colocar en la piscina? Podría estar malinterpretando la intenciónRespuestas:
Carbón , 32 bytes
Pruébalo en línea!
-4 gracias a Neil .
AST:
fuente
-a
argumento de la línea de comandos.-a
plantea error> _ <Carbón ,
403937 bytesPruébalo en línea!
Sé que Neil ya tiene una respuesta de Carbón de carbón de aproximadamente la misma longitud, pero tomé un enfoque un poco diferente, así que pensé que también podría publicar la mía.
Explicación
fuente
B
es opcional? Bien, eso me ahorra dos bytes!Carbón,
40383631 bytesPruébalo en línea! El enlace es a la versión detallada del código. Explicación:
Las primitivas de dibujo de carbón utilizan el recuento general de caracteres, incluidos
+
s, sin embargo, la entrada es solo el número de-
s, por lo que debemos agregar 2 para obtener el ancho de la pared interior.Calcule la altura de la pared interior, nuevamente, incluyendo la fila inferior, entonces tres por carril más uno.
Dibuja los carriles. Esto es simplemente un rectángulo lleno de
:
s verticalmente separados por dos líneas en blanco (los corchetes representan caracteres de nueva línea).El
Rectangle
comando es exactamente lo que necesitamos para dibujar la pared interior. Editar:Box
permite omitir su tercer parámetro, ahorrándome 2 bytes.Y nuevamente para dibujar la pared exterior, excepto un poco más ancha y más alta, y centrada en la pared interior.
fuente
T-SQL,
284281 bytesLa entrada se toma de las columnas INT L y x en la tabla t preexistente , según nuestros métodos de entrada permitidos .
Básicamente, estoy creando una cadena larga con letras que representan los caracteres repetidos (d = guiones, s = espacios, c = dos puntos, b = salto de línea), luego los REEMPLAZO al final con los rellenos apropiados.
Formateado:
Dentro del bucle agrego 2 filas de espacios en blanco y 1 fila de dos puntos, luego al final corté esa fila divisoria y agregué el borde de la piscina antes de realizar los reemplazos.
EDITAR : guardado 3 bytes cambiando
@
a la variable más utilizada e intercambiando el orden de inicialización.fuente
JavaScript (ES6),
137124bytesGolfed un poco en mi teléfono, más para seguir.
Intentalo
fuente
Python 2 ,
124120117 bytes-2 bytes gracias a Hyper Neutrino
Pruébalo en línea!
fuente
t
es innecesaria)SOGL V0.12 ,
5251 bytesPruébalo aquí!
No está mal teniendo en cuenta que 20 bytes de esto es una función rectangular, para la cual el carbón tiene incorporado.
Explicación:
fuente
C # (.NET Core) , 202 bytes
Pruébalo en línea!
fuente
Python 2 ,
128126 bytesPruébalo en línea!
-2 bytes gracias a @ Mr.Xcoder
fuente
PHP , 153 bytes
Pruébalo en línea!
fuente
Python 2 , 97 bytes
Pruébalo en línea!
Python 2 , 98 bytes
Pruébalo en línea!
fuente
Carbón , 36 bytes
Pruébalo en línea!
Este es un algoritmo de carbón más que mi otra respuesta.
fuente
C (gcc) , 195 bytes
Pruébalo en línea!
fuente
Perl 5 , 124 + 1 (-a) = 125 bytes
Pruébalo en línea!
fuente