Introduction:
(Source: Wikipedia )
Quand on regarde un arc-en-ciel, il aura toujours les couleurs de haut en bas:
rouge; Orange; Jaune; vert; bleu; indigo; violet
Si nous regardons ces anneaux individuels, l'anneau rouge est bien sûr plus grand que l'anneau violet.
De plus, il est également possible d'avoir deux voire trois arc-en-ciel en même temps.
Tout cela combiné ci-dessus sera utilisé dans ce défi:
Défi:
Étant donné un nombre entier n
, sortez autant d'anneaux des (éventuellement plus d'un) 'arcs-en-ciel', où nous utiliserons les lettres vibgyor
pour les couleurs.
Voir les cas de test ci-dessous pour voir comment ils sont construits vers le haut n=1
et comment l'espacement doit être géré (en n=8
). Comme vous pouvez le voir, un espace est ajouté entre deux arcs-en-ciel, y compris l'espacement en haut, avant d'ajouter l'anneau de l'arc-en-ciel suivant en ligne.
Règles du défi:
- Vous êtes autorisé à utiliser des capitaux
VIBGYOR
au lieu de minuscules - Il devrait y avoir un espace entre les arcs-en-ciel individuels
- N'importe quelle quantité d'espaces / de nouvelles lignes de début et / ou de fin est autorisée, tant que l'arc-en-ciel réel (où qu'il soit placé sur l'écran) est correct
- L'entrée sera toujours un entier positif (
>= 1
). Le comportement quandn=0
est donc indéfini, et le programme / fonction peut faire ce qu'il veut (rien sortir; sortir l'arc-en-ciel den=1
; sortie aléatoire; échouer avec une erreur; etc.) - Vous êtes autorisé à sortir une liste / tableau de chaînes ou un tableau 2D / liste de caractères si vous le souhaitez (vous pouvez ajouter le code de jolie impression réel dans le pied de page TIO).
- Ignorez le fait que les sorties ressemblent plus à des temples mayas qu'à des arcs-en-ciel. XD
Règles générales:
- C'est le code-golf , donc la réponse la plus courte en octets l'emporte.
Ne laissez pas les langues de golf de code vous décourager de publier des réponses avec des langues non-golfeur de code. Essayez de trouver une réponse aussi courte que possible pour «n'importe quel» langage de programmation. - Des règles standard s'appliquent à votre réponse, vous êtes donc autorisé à utiliser STDIN / STDOUT, des fonctions / méthodes avec les paramètres appropriés et des programmes complets de type retour. Ton appel.
- Les failles par défaut sont interdites.
- Si possible, veuillez ajouter un lien avec un test pour votre code.
- De plus, l'ajout d'une explication à votre réponse est fortement recommandé.
Cas de test (premier n=1
à n=10
, et 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
Réponses:
Python 2 ,
848281 octets-2 octets grâce à ElPedro.
Essayez-le en ligne!
la source
JavaScript (ES6), 100 octets
Renvoie un tableau de chaînes.
Essayez-le en ligne!
la source
05AB1E ,
323123 octetsEssayez-le en ligne!
-1 merci à Kevin Cruijssen et -8 merci à Adnan
Explication (exemple de pile avec entrée de 3):
la source
"vibgyor"
peut être joué au golf de 1 octet à.•2Bãθ(•
. ( Voici l'explication à ce sujet dans la section " Comment compresser des chaînes ne faisant pas partie du dictionnaire? ".) En outre,„vr…v r:ð«
peut être joué au'v„v .:
. Donc 28 octets . Belle réponse cependant, +1 de ma part..••
ne sauverait pas un octet. Chiffres la seule fois où je ne vérifie pas réellement, c'est le temps qu'il sauverait les octets xD. Good catch.•VvÈ©•¹∍¬„ v:Rηε¬ý}.c
¬ý
est aussi un génie ... Jeez ... Vous pensez différemment et c'est génial.Toile ,
292826 octetsEssayez-le ici!
Explication:
252422 octets après la correction que l'ancien devrait tourner si la longueur souhaitée est plus grande que la longueur des entrées et fixation/
pour la 10e foisla source
v
côté (<
)? Est-cev
déjà un mot-clé réservé dans Canvas, si oui, pourquoi ne pas utiliser<
comme mot-clé inversé à la place?<
rotation de 90 ° dans le sens inverse des aiguilles d'une montre est égale àv
: P Tous les ASCII font partie des chaînes dans Canvas btwv
ici, et ensuite vous le faites pivoter de 90 degrés dans le sens antihoraire, cela devient à la>
place. Je vois. : DHaskell ,
114110101 octetsMerci à [nimi] [1] pour -
413 octets!Essayez-le en ligne!
la source
Dyalog APL ,
413938 octetsEssayez-le en ligne!
Une approche similaire à d'autres:
A←⌈⎕×8÷7
trouve la hauteur de l'arc-en-ciel (également la largeur de la `` demi-rangée '' la plus longue à gauche / droite du centre) et l'affecte àA
pour une utilisation ultérieure, tout en¨-⍳
parcourant les valeurs 1..A, les nier pour sélectionner du bon côté lorsqu'il est utilisé avec↑
.A⍴' vibgyor'
génère une «demi-ligne» et⍵↑
sélectionne la sous-chaîne de longueur correcte.(⌽,⊃,A↑⊢)
génère la ligne complète à l'envers (ce qui prend moins de caractères à faire), en commençant par une demi-ligne inversée (⌽
), puis le caractère central tiré du début de la chaîne de demi-ligne (⊃
) et enfin une version rembourrée à droite de la demi-ligne (A↑⊢
). La finale⌽
inverse la ligne dans la bonne orientation et↑
transforme le vecteur de lignes en un tableau 2D.Edit: -2 grâce à dzaima
Edit: -1 grâce à ngn
la source
⍕⍪
par↑
- la sortie d'un tableau 2D de caractères est autorisée1+÷7
->8÷7
Python 2 , 108 octets
Essayez-le en ligne!
la source
Fusain , 30 octets
Essayez-le en ligne! Le lien est vers la version détaillée du code. Explication:
Changez la direction du dessin vers le haut.
Calculez la hauteur de l'arc-en-ciel et répétez la chaîne littérale à cette longueur.
Imprimez la ligne centrale de l'arc-en-ciel.
Imprimez la moitié droite de l'arc-en-ciel en prenant des tranches successives et en les imprimant chacune sur sa propre "ligne".
Réfléchissez pour compléter l'arc-en-ciel.
la source
Gelée , 31 octets
Essayez-le en ligne!
Découvrez une suite de tests!
ಠ_ಠ C'est trop compliqué parce que Jelly n'a pas de fonction centralisée ...
la source
Gelée , 28 octets
Un lien monadique acceptant un entier qui donne une liste de listes de caractères.
Essayez-le en ligne! (le pied de page rejoint les caractères de nouvelle ligne)
Ou consultez la suite de tests .
Comment?
la source
R , 130 octets
Essayez-le en ligne!
la source
Haskell , 106
113octetsJe ne peux pas encore commenter d'autres messages (à savoir celui-ci ), je dois donc publier la solution en tant que réponse distincte.
Golfé loin 7 octets par ovs
Essayez-le en ligne!
( Ancienne version , 113 octets)
la source
PowerShell ,
108988985 octetsEssayez-le en ligne!
Celui-ci se sent bien maintenant. L'arrondi de banquier est toujours le diable et j'ai compris comment faire une jointure non stupide. J'ai essayé le singe avec $ ofs sans grand succès. En parlant de ça, les résultats sans jointures sont plutôt bons, un peu melty:
la source
Python 2 ,
132131 octetsEssayez-le en ligne!
Enregistré:
la source
//
en Python 2?Rouge , 153 octets
Essayez-le en ligne!
Un peu plus lisible:
la source
Java (JDK 10) , 184 octets
Essayez-le en ligne!
Imprime un espace de début et de fin supplémentaire pour chaque multiple de 7.
Explication
Crédits
la source
,w=-~h*2+1,i=h+1
à,i=h+1,w=i*2+1
i-~i
place dei*2+1
Stax , 23 octets
Exécuter et déboguer
Déballé, non golfé et commenté, il ressemble à ceci.
Exécutez celui-ci
la source