Le boustrophédon est un type de texte bidirectionnel où les lignes successives alternent entre la lecture de gauche à droite et de droite à gauche. La direction des caractères était également reflétée par rapport à la direction de lecture. Dans les systèmes d'écriture à boustrophédon inversé, les caractères étaient tournés de 180 au lieu d'être mis en miroir.
Défi
Écrivez un programme / une fonction qui accepte une chaîne de texte et un certain nombre de colonnes, et génère la chaîne formatée dans le nombre spécifié de colonnes avec des lignes alternées inversées.
Contribution
Votre programme doit accepter deux arguments:
- S, la chaîne de texte à formater
- N, le nombre de colonnes
Production
Votre programme doit produire S enveloppé dans N colonnes avec des lignes alternées inversées à 180 degrés.
- Le sens de lecture de la première ligne est toujours de gauche à droite.
- Ne vous inquiétez pas de l'endroit où placer les sauts de ligne, les lignes peuvent être divisées en n'importe quel caractère, aucune hypénation des mots n'est requise.
- Vous pouvez supposer que la chaîne d'entrée ne contiendra aucun saut de ligne.
Voici les personnages que votre programme devrait prendre en charge avec leurs homologues inversés:
Uppercase:
ABCDEFGHIJKLMNOPQRSTUVWXYZ
∀qƆpƎℲפHIſʞ˥WNOԀQɹS┴∩ΛMX⅄Z
Lowercase:
abcdefghijklmnopqrstuvwxyz
ɐqɔpǝɟƃɥᴉɾʞlɯuodbɹsʇnʌʍxʎz
Punctuation:
&_?!"'.,
⅋‾¿¡„,˙'
Cas de test
S: The quick brown fox jumps over the lazy dog.
N: 30
Output:
The quick brown fox jumps over
˙ƃop ʎzɐl ǝɥʇ
S: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque vel libero arcu. Nunc dictum elementum lectus nec aliquet. Donec dolor nunc, sodales at dolor rhoncus, hendrerit scelerisque purus. Pellentesque vel sagittis libero, et rutrum leo. Nullam vulputate enim et massa dictum, vitae venenatis augue lobortis. Fusce sollicitudin ultrices consequat. Vestibulum quis nunc non tortor eleifend facilisis. In at nunc elit. Aliquam pellentesque, lectus quis aliquam posuere, quam lectus sagittis metus, ut auctor sem quam a neque. Integer rhoncus lobortis nisl. Pellentesque mi dui, laoreet in metus quis, mollis accumsan est. Nunc dignissim tortor ac eleifend tempus. Ut ut tellus aliquam, luctus nulla quis, consectetur nunc. Suspendisse viverra molestie condimentum. Curabitur et hendrerit augue.
N: 50
Output:
Lorem ipsum dolor sit amet, consectetur adipiscing
uǝɯǝlǝ ɯnʇɔᴉp ɔunN ˙nɔɹɐ oɹǝqᴉl lǝʌ ǝnbsᴉnQ ˙ʇᴉlǝ
tum lectus nec aliquet. Donec dolor nunc, sodales
lǝԀ ˙snɹnd ǝnbsᴉɹǝlǝɔs ʇᴉɹǝɹpuǝɥ 'snɔuoɥɹ ɹolop ʇɐ
lentesque vel sagittis libero, et rutrum leo. Null
sᴉʇɐuǝuǝʌ ǝɐʇᴉʌ 'ɯnʇɔᴉp ɐssɐɯ ʇǝ ɯᴉuǝ ǝʇɐʇndlnʌ ɯɐ
augue lobortis. Fusce sollicitudin ultrices conse
ɔɐɟ puǝɟᴉǝlǝ ɹoʇɹoʇ uou ɔunu sᴉnb ɯnlnqᴉʇsǝΛ ˙ʇɐnb
ilisis. In at nunc elit. Aliquam pellentesque, lec
ʇǝɯ sᴉʇʇᴉƃɐs snʇɔǝl ɯɐnb 'ǝɹǝnsod ɯɐnbᴉlɐ sᴉnb snʇ
us, ut auctor sem quam a neque. Integer rhoncus lo
snʇǝɯ uᴉ ʇǝǝɹoɐl 'ᴉnp ᴉɯ ǝnbsǝʇuǝllǝԀ ˙lsᴉu sᴉʇɹoq
quis, mollis accumsan est. Nunc dignissim tortor
u snʇɔnl 'ɯɐnbᴉlɐ snllǝʇ ʇn ʇ∩ ˙sndɯǝʇ puǝɟᴉǝlǝ ɔɐ
ulla quis, consectetur nunc. Suspendisse viverra m
˙ǝnƃnɐ ʇᴉɹǝɹpuǝɥ ʇǝ ɹnʇᴉqɐɹnƆ ˙ɯnʇuǝɯᴉpuoɔ ǝᴉʇsǝlo
la source
Japt ,
182179 octetsJapt est une version abrégée de Ja vaScri pt . Interprète
Comment ça fonctionne
Il y a quelques problèmes, mais ils ne devraient pas affecter la validité du programme:
\xA1
, est de trois octets de plus.Il existe peut-être un moyen de raccourcir la chaîne. Les suggestions sont les bienvenues!
la source
CJam, 152
Testez-le ici.
Je suppose que je devrais chercher à compresser un peu cette chaîne Unicode ...
la source
Javascript (ES6),
407400366360353 octetsJe ne compte que les deux premières "lignes" de cet extrait comme le nombre total, car le reste est du code pour l'exécuter.
Explication
la source
.split("")
et vos.join("")
à.split``
et.join``
raser quelques octets. Le.join("\n")
peut également être réécrit comme ci-dessus avec une nouvelle ligne littérale au lieu de\n
.exec
et le garder court cependant, car ilexec
doit être bouclé pour obtenir tous les matchs.Pyth, 141 octets
Testé avec un compilateur Pyth en ligne.
Comment ça fonctionne
Carte
Ordinaire
Renversé (rien d'extraordinaire)
la source
Python,
453363 octetsla source