Hay una canción satírica llamada Little Boxes , originalmente de Malvina Reynolds, sobre la expansión suburbana que tiene letras de la siguiente manera:
Pequeñas cajas en la ladera,
Pequeñas cajas hechas de ticky-hortera,
Pequeñas cajas en la ladera,
Pequeñas cajas de todos modos.
Hay uno verde y uno rosa
Y uno azul y uno amarillo,
Y todos están hechos de pegajoso
Y todos se ven iguales.
Su trabajo aquí es, dada una entrada entera n>1
que representa el tamaño de la casa, generar las cuatro "cajas pequeñas" con los siguientes colores (en notación 0xRRGGBB):
Green -- 0x00FF00
Pink --- 0xFF00FF (technically magenta)
Blue --- 0x0000FF
Yellow - 0xFFFF00
Si su consola particular no tiene estos colores exactos, puede usar el más cercano disponible (por ejemplo, códigos de escape ANSI).
Las casas están construidas n
_
representando el piso y la línea del techo. Están rodeados de personajes n/2
(redondeados) |
que representan las paredes. Los techos son siempre 2
altos y son dos /
en el borde izquierdo, dos \
en el borde derecho y n-2
-
representan el pico del techo. A medida que las casas se hacen más grandes, el tamaño comparativo del techo se hace más pequeño; Esto es lo que se pretende.
Aquí hay una casa de tamaño 2
:
/\
/__\
|__|
Aquí está el tamaño 3
:
/-\
/___\
| |
|___|
Aquí está el tamaño 7
:
/-----\
/_______\
| |
| |
| |
|_______|
Por lo tanto, dada una entrada de 7
, salida cuatro casas de tamaño 7
como se describe anteriormente, con la primera en verde, la segunda en rosa (magenta), la tercera en azul y la cuarta en amarillo. La salida de los colores en ese orden es importante.
Imagen de ejemplo de tamaño 3
:
Reglas
- Las casas pueden ser horizontales o verticales siempre que haya una separación clara entre ellas.
- Las nuevas líneas iniciales / finales u otros espacios en blanco son opcionales, siempre que las casas se alineen adecuadamente.
- Un programa completo o una función son aceptables. Si es una función, puede devolver el resultado en lugar de imprimirlo.
- La salida puede ser a la consola, guardada como una imagen, etc.
- Las lagunas estándar están prohibidas.
- Este es el código de golf, por lo que se aplican todas las reglas habituales de golf, y gana el código más corto (en bytes).
fuente
90
y2,5,4,3
resumido es efectivamente concatenación.JavaScript (ES6), Chrome / Firefox,
156148151150 bytesGuardado 8 bytes gracias a @Shaggy
Guardado 1 byte gracias a @Neil
Manifestación
Asegúrese de abrir la consola de su navegador para obtener la salida en color.
Mostrar fragmento de código
fuente
0
necesarios los principales ?#RGB
código de color CSS válido .Excel VBA, 243 bytes
Función de ventana inmediata anónima VBE que toma entradas
A1
y salidas al rangoA2:A5
Salida
fuente
Japt ,
7976747372 bytesPruébelo (abra la consola de su navegador antes de presionar "Ejecutar").
Gracias a ETH por ayudarme a probar esto anoche mientras estaba trabajando en mi teléfono.
Explicación
Entrada implícita de entero
U
Primero construimos una matriz de colores hexadecimales de 3 dígitos para mapear. El código de char de
²
178 es el que3#²
nos da 3178. Lo convertimos en una cadena base-2 con¤
y luego reemplazamos todas las apariciones de1
conf
.ò3
divide la cadena en una matriz de cadenas de longitud 3 ew
invierte esa matriz.(Necesito encontrar una manera de acortar eso, de alguna manera).
Mapeamos sobre la matriz usando
£
,X
siendo el elemento actual, yOl
registramos en la consola. Vamos a pasar 2 cadenas a eso, una que contiene la casa y otra que contiene el CSS.La segunda cadena se construye utilizando
i
para anteponerX
con la cadena comprimidacolor:#
.El
%c
le dice a la consola que use la segunda cadena como CSS. La línea superior de la casa se construye repitiendo (ç
) los tiempos de los-
caracteresU
y luego dividiéndolos del segundo elemento (indexado en 0) con¤
. Las llaves actúan como un atajo, más o menos, para la concatenación de cadenas.La segunda línea está construida de manera similar, esta vez repitiendo los tiempos de los
_
personajesU
.El cuerpo de la casa se construye repitiendo primero el
|
carácter dos veces²
y luego insertando un espacio repetidoU
en esa cadena en el índice 1. La cadena resultante se antepone a una nueva línea (R
) y esa cadena se repiteU/2-0.5
veces.Finalmente, la última línea se construye de la misma manera que la segunda.
fuente
Python 2 , 120 bytes
Pruébalo en línea! (muestra caracteres de escape en lugar de colores reales, probado en la terminal local)
fuente
n=2
.use the closest available
, aunque pareces usar los colores normales en lugar de los colores brillantes. Sin embargo, los colores brillantes, creo, estarían más cerca de los colores deseados.Yabasic , 220 bytes
Una función anónima que toma la entrada como un entero,
n
y genera 4 hogares de colores en la terminal.La falta de una función dedicada de repetición o reemplazo de cadenas en yabsic realmente perjudica esta respuesta.
Esta versión requiere modo gráfico y, por lo tanto, no funciona en TIO.
Salida
El valor de entrada para el siguiente es
n=7
.fuente
SmileBASIC, 115 bytes
Otro que también tiene 115 bytes:
Los códigos de colores que necesito (en RGBI de 4 bits) son 5, 11, 9, 7. Esto se genera usando
!!J*8-J*2+5
Si J no es 0, esto es13-J*2
(dando 11,9,7), y si es así, el resultado es solo 5.fuente