Boustrophedon es un tipo de texto bidireccional en el que las líneas sucesivas alternan entre la lectura de izquierda a derecha y de derecha a izquierda. La dirección del personaje también se reflejó con respecto a la dirección de lectura. En los sistemas de escritura de boustrofedón inverso, los caracteres se giraban 180 en lugar de reflejarse.
Desafío
Escriba un programa / función que acepte una cadena de texto y una cantidad de columnas, y genere la cadena formateada en la cantidad especificada de columnas con líneas alternas invertidas.
Entrada
Su programa debe aceptar dos argumentos:
- S, la cadena de texto para formatear
- N, el número de columnas
Salida
Su programa debería generar S envuelto en N columnas con líneas alternas invertidas 180 grados.
- La dirección de lectura de la primera línea siempre es de izquierda a derecha.
- No se preocupe por dónde colocar saltos de línea, las líneas se pueden dividir en cualquier carácter, no se requiere la exageración de las palabras.
- Puede suponer que la cadena de entrada no contendrá saltos de línea.
Estos son los caracteres que su programa debe admitir con sus contrapartes invertidas:
Uppercase:
ABCDEFGHIJKLMNOPQRSTUVWXYZ
∀qƆpƎℲפHIſʞ˥WNOԀQɹS┴∩ΛMX⅄Z
Lowercase:
abcdefghijklmnopqrstuvwxyz
ɐqɔpǝɟƃɥᴉɾʞlɯuodbɹsʇnʌʍxʎz
Punctuation:
&_?!"'.,
⅋‾¿¡„,˙'
Casos de prueba
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
fuente
Japt ,
182179 bytesJapt es una versión abreviada de Ja vaScri pt . Interprete
Cómo funciona
Hay un par de problemas, pero no deberían afectar la validez del programa:
\xA1
, es tres bytes más larga.Quizás haya una forma de acortar la cuerda. ¡Sugerencias son bienvenidas!
fuente
CJam, 152
Pruébalo aquí.
Supongo que debería considerar comprimir un poco esa cadena Unicode ...
fuente
Javascript (ES6),
407400366360353 bytesSolo cuento las dos primeras "líneas" en este fragmento como el recuento total, ya que el resto es código para ejecutarlo.
Explicación
fuente
.split("")
's' y.join("")
's.split``
y.join``
recortar algunos bytes. El.join("\n")
también se puede reescribir como el anterior con una nueva línea literal en lugar de\n
.exec
y mantenerlo corto, ya que esexec
necesario realizar un bucle para obtener todos los partidos.Pyth, 141 bytes
Probado con un compilador Pyth en línea.
Cómo funciona
Mapa
Normal
Volteado (nada lujoso)
fuente
Python,
453363 bytesfuente