Votre tâche consiste à accepter comme entrée deux "Art ASCII" et à aligner chaque œuvre d'art côte à côte horizontalement.
Par exemple, supposons que vous ayez deux chaînes "abc\ndef"
et "123\n456"
. Vous devez les aligner horizontalement pour produire la chaîne "abc123\ndef456
". J'appelle cela" aligner horizontalement "car pendant que les entrées, une fois imprimées, ressemblent à ceci:
abc
def
et:
123
456
La sortie, une fois imprimée, ressemblera à ceci:
abc123
def456
Notez comment une entrée est placée à côté de l'autre.
Contribution
- L'entrée sera des chaînes et peut être sous la forme de deux arguments distincts ou sous la forme d'une séquence de chaînes.
- Les caractères dans les arts auront des codes décimaux compris entre 32 et 126 (inclus).
- C'est bien de prendre en charge un nombre arbitraire d'arts à aligner au lieu de deux (mais vous devez évidemment en prendre au moins deux).
- Vous pouvez supposer que chaque art aura les mêmes dimensions et qu'elles contiendront au moins une ligne.
Vous devez être capable de supporter au moins 100x100 arts des personnages.
Pour s'aligner sur les conventions du site, l'ordre des arguments n'a pas d'importance. Peu importe quel art est à gauche ou à droite.
Production
La sortie sera les arts alignés comme mentionné ci-dessus, soit retournés soit sortis vers la sortie standard.
Tout espace de fin en option.
Il ne doit pas y avoir de séparateur visuel entre les arts alignés.
Les arts d'entrée et de sortie doivent être \n
ou\r
chaînes délimitées. Il serait trop trivial d'autoriser les tableaux 2D.
Les soumissions peuvent être des fonctions ou des programmes complets.
Cas de test:
"abc\ndef", "123\n456" -> "abc123\ndef456".
"qwertyuiop\n asdfghjkl", "Some other\nTextFiller" -> "qwertyuiopSome other\n asdfghjklTextFiller"
" * \n *** \n*****\n *** \n * \n", " + \n + \n+++++\n + \n + \n" -> " * + \n *** + \n*****+++++\n *** + \n * + \n"
"|"
ou" "
?\r
place de\n
?Réponses:
Toile , 1 octet
Essayez-le ici!
la source
Haskell , 37 octets
Essayez-le en ligne!
IO comme des listes de lignes serait juste
zipWith(++)
. : Pla source
Python 2 , 59 octets
Essayez-le en ligne!
la source
05AB1E , 6 octets
Essayez-le en ligne!
Explication
la source
Gelée , 4 octets
Essayez-le en ligne!
la source
Perl 5
-0F
, 28 octetsComprend
+2
pour l'\n
argument-F
(c'est "code" donc ça devrait compter)Donnez des entrées directement après l'autre sur STDIN.
Essayez-le en ligne!
la source
Bash + coreutils, 14
L'entrée est donnée sous deux noms de fichiers en tant que paramètres de ligne de commande.
Essayez-le en ligne .
la source
paste -d "" $@
-d ""
, j'ai essayé-d""
, ce qui bien sûr n'est pas différent de-d
Perl 6 , 27 octets
Essayez-le en ligne!
Fonctionne avec un nombre arbitraire d'arts. IO comme liste de listes serait juste
&[Z~]
.la source
APL (Dyalog Unicode) , 9 octets SBCS
Programme complet. Invite (STDIN) pour toute liste de longueur de
\r
chaînes délimitées. Les chaînes peuvent être irrégulières et de largeurs différentes tant qu'elles ont le même nombre de lignes. Imprime (STDOUT) résultant de l'art ASCII.Essayez-le en ligne!
⎕
invite pour l'entrée évaluée⎕FMT¨
format (évaluer tous les caractères de contrôle et retourner la matrice de caractères) chacun,/
les combiner horizontalement (réduction de caténation)⊃
divulguer (car la réduction a réduit le rang de 1 à 0)la source
Java 8,
1008478 octetsQuitte avec un
ArrayIndexOutOfBoundsException
vers STDERR après avoir imprimé le résultat dans STDOUT, ce qui est autorisé .-6 octets grâce à @ OlivierGrégoire .
Explication:
Essayez-le en ligne.
la source
a->b->{for(int i=0;;)System.out.println(a.split("\n")[i]+b.split("\n")[i++]);}
78 octets. Rien n'est dit sur l'absence d'effets secondaires supplémentaires. Nous pourrions donc simplement compter jusqu'à ce qu'une exception se produise.Rubis , 48 octets
Essayez-le en ligne!
Un lambda prenant deux chaînes et renvoyant une chaîne. La définition du
split
délimiteur par défaut sur la nouvelle ligne avec$;=$/;
ne sauvegarde aucun octet, mais rend le reste un peu plus agréable.Ruby , 49 octets (arbitrairement plusieurs chaînes)
Essayez-le en ligne!
Juste pour le fun. Il s'avère que nous pouvons accepter un tableau de chaînes à un coût supplémentaire de seulement 1 octet.
la source
JavaScript (ES6), 51 octets
la source
Merveille , 21 octets
Exemple d'utilisation:
#n
est utilisé au lieu de\n
pour désigner les nouvelles lignes.Explication
Version détaillée:
Divisez chaque chaîne dans le tableau d'entrée le long des sauts de ligne, zippez avec la chaîne concaténée et sortez chaque élément.
la source
Kotlin , 73 octets
Essayez-le en ligne!
la source
Ajouter ++ , 24 octets
Essayez-le en ligne!
la source
C, 96 octets
Essayez-le en ligne!
la source
JavaScript (ES6), 52 octets
Prend une entrée dans la syntaxe de curry
(a)(b)
.Essayez-le en ligne!
la source
Julia 0,6 , 41 octets
Essayez-le en ligne!
la source
PowerShell ,
5149 octetsEssayez-le en ligne!
Prend l'entrée sous forme de chaînes littérales avec des retours à la ligne. Vous pouvez également utiliser
`n
(le délimiteur de nouvelle ligne dans PowerShell, non\n
) à la place.Nous commençons par
-split
la chaîne d'entrée gauche sur les sauts de ligne, ce qui crée un tableau, et bouclons à travers cela|%{...}
. À chaque itération, nous enchaînons la chaîne avec la chaîne d'entrée droite à nouveau divisée sur les nouvelles lignes, indexée et incrémentée.Celles-ci sont laissées sur le pipeline et l'implicite
Write-Output
à la fin nous donne une sortie sous forme de tableau de chaînes, qui sont imprimées avec des retours à la ligne entre.la source
APL (Dyalog Unicode) , 22 octets ( SBCS d'Adám )
Essayez-le en ligne!
la source
Rouge , 78 octets
Essayez-le en ligne!
la source
Japt
-R
,87 octetsEssayez-le
Explication
Alternative
Essayez-le
la source
Bash , 92 octets
Essayez-le en ligne!
Non golfé:
Exemples:
J'en ai également une plus courte mais elle échoue si la deuxième
read
instruction renvoie une valeur non nulle.Bash , 55 octets
Remarque:
<&3
ne semble pas fonctionner sur tio.runCelui-ci utilise des descripteurs de fichiers (
1
et3
) au lieu d'arguments:la source
Fusain , 8 octets
Essayez-le en ligne! Le lien est vers la version détaillée du code. Explication:
Ajoutez 2 octets pour accepter plusieurs entrées:
Essayez-le en ligne! Le lien est vers la version détaillée du code. Explication:
Ajoutez 4 octets pour accepter l'entrée non complétée:
Essayez-le en ligne! Le lien est vers la version détaillée du code. Explication:
la source
JavaScript (Node.js) , 79 octets
Essayez-le en ligne!
Prend en charge un nombre arbitraire d'arts ASCII se réunissant plutôt que seulement 2 (comme dans les 2 réponses JS précédentes).
la source
Nettoyer , 61 octets
Essayez-le en ligne!
la source
Swift 4 , 119 octets
Explication
Essayez-le en ligne!
la source