Introducción:
(Fuente: Wikipedia )
Cuando miramos un arco iris siempre tendrá los colores de arriba a abajo:
rojo; naranja; amarillo; verde; azul; índigo; Violeta
Si observamos estos anillos individuales, el anillo rojo es, por supuesto, más grande que el anillo violeta.
Además, también es posible tener dos o incluso tres arcoíris al mismo tiempo.
Todo lo anterior combinado se usará en este desafío:
Desafío:
Dado un número entero n, genera muchos anillos de (posiblemente más de uno) 'arco iris', donde usaremos las letras vibgyorpara los colores.
Vea los casos de prueba a continuación para ver cómo se construyen hacia arriba n=1y cómo se debe manejar el espacio (en n=8). Como puede ver, se agrega un espacio entre dos arcoíris, incluido el espacio en la parte superior, antes de agregar el anillo del siguiente arcoíris en línea.
Reglas de desafío:
- Se le permite usar capital en
VIBGYORlugar de minúsculas - Debería haber un espacio entre los arcoíris individuales
- Se permite cualquier cantidad de espacios iniciales y / o finales / nuevas líneas, siempre que el arcoíris real (donde sea que se coloque en la pantalla) sea correcto
- La entrada siempre será un entero positivo (
>= 1). El comportamiento,n=0por lo tanto, no está definido, y el programa / función puede hacer lo que quiera (no generar nada; generar el arco iris den=1; salida aleatoria; fallar con un error; etc.) - Si lo desea, puede generar una lista / matriz de cadenas o una matriz / lista de caracteres 2D (puede agregar el código de impresión bonita en el pie de página de TIO).
- Ignora el hecho de que las salidas se parecen más a los templos mayas que a los arcoiris. XD
Reglas generales:
- Este es el código de golf , por lo que la respuesta más corta en bytes gana.
No permita que los lenguajes de code-golf lo desanimen a publicar respuestas con lenguajes que no sean codegolf. Trate de encontrar una respuesta lo más breve posible para 'cualquier' lenguaje de programación. - Se aplican reglas estándar para su respuesta, por lo que puede usar STDIN / STDOUT, funciones / método con los parámetros adecuados y programas completos de tipo retorno. Tu llamada.
- Las lagunas predeterminadas están prohibidas.
- Si es posible, agregue un enlace con una prueba para su código.
- Además, se recomienda agregar una explicación para su respuesta.
Casos de prueba (primero a n=1través n=10y n=25):
1:
vvv
v v
2:
iii
ivvvi
iv vi
3:
bbb
biiib
bivvvib
biv vib
4:
ggg
gbbbg
gbiiibg
gbivvvibg
gbiv vibg
5:
yyy
ygggy
ygbbbgy
ygbiiibgy
ygbivvvibgy
ygbiv vibgy
6:
ooo
oyyyo
oygggyo
oygbbbgyo
oygbiiibgyo
oygbivvvibgyo
oygbiv vibgyo
7:
rrr
rooor
royyyor
roygggyor
roygbbbgyor
roygbiiibgyor
roygbivvvibgyor
roygbiv vibgyor
8:
vvv
v v
v rrr v
v rooor v
v royyyor v
v roygggyor v
v roygbbbgyor v
v roygbiiibgyor v
v roygbivvvibgyor v
v roygbiv vibgyor v
9:
iii
ivvvi
iv vi
iv rrr vi
iv rooor vi
iv royyyor vi
iv roygggyor vi
iv roygbbbgyor vi
iv roygbiiibgyor vi
iv roygbivvvibgyor vi
iv roygbiv vibgyor vi
10:
bbb
biiib
bivvvib
biv vib
biv rrr vib
biv rooor vib
biv royyyor vib
biv roygggyor vib
biv roygbbbgyor vib
biv roygbiiibgyor vib
biv roygbivvvibgyor vib
biv roygbiv vibgyor vib
25:
ggg
gbbbg
gbiiibg
gbivvvibg
gbiv vibg
gbiv rrr vibg
gbiv rooor vibg
gbiv royyyor vibg
gbiv roygggyor vibg
gbiv roygbbbgyor vibg
gbiv roygbiiibgyor vibg
gbiv roygbivvvibgyor vibg
gbiv roygbiv vibgyor vibg
gbiv roygbiv rrr vibgyor vibg
gbiv roygbiv rooor vibgyor vibg
gbiv roygbiv royyyor vibgyor vibg
gbiv roygbiv roygggyor vibgyor vibg
gbiv roygbiv roygbbbgyor vibgyor vibg
gbiv roygbiv roygbiiibgyor vibgyor vibg
gbiv roygbiv roygbivvvibgyor vibgyor vibg
gbiv roygbiv roygbiv vibgyor vibgyor vibg
gbiv roygbiv roygbiv rrr vibgyor vibgyor vibg
gbiv roygbiv roygbiv rooor vibgyor vibgyor vibg
gbiv roygbiv roygbiv royyyor vibgyor vibgyor vibg
gbiv roygbiv roygbiv roygggyor vibgyor vibgyor vibg
gbiv roygbiv roygbiv roygbbbgyor vibgyor vibgyor vibg
gbiv roygbiv roygbiv roygbiiibgyor vibgyor vibgyor vibg
gbiv roygbiv roygbiv roygbivvvibgyor vibgyor vibgyor vibg
gbiv roygbiv roygbiv roygbiv vibgyor vibgyor vibgyor vibg