Una cadena snakified se ve así:
T AnE eOf ifi ing
h s x l A k e r
isI amp Sna dSt
Tu tarea
Tome una cadena s
y un tamaño n
, luego envíe la cadena snakified. Las entradas ThisIsAnExampleOfaSnakifiedString
y 3
producirían el ejemplo anterior.
Presupuesto
s
solo contendrá caracteres ASCII entre los puntos de código 33 y 126 inclusive (sin espacios ni líneas nuevas).s
tendrá entre 1 y 100 caracteres de longitud.n
es un número entero que representa el tamaño de cada segmento de cadena de salida. Cada línea de caracteres (arriba / abajo o izquierda / derecha) que forman las curvas en la "serpiente" tienen
caracteres largos. Vea los casos de prueba para ver ejemplos.n
será entre 3 y 10 inclusive.- La cadena de salida siempre comienza a apuntar hacia abajo.
- Se permiten espacios finales en cada línea.
- Las nuevas líneas al final de la salida también están permitidas.
- No se permiten espacios iniciales.
- code-golf significa que el código más corto en bytes gana.
Casos de prueba
a 3
a
----------
Hello,World! 3
H Wor
e , l
llo d!
----------
ProgrammingPuzzlesAndCodeGolf 4
P ngPu Code
r i z d G
o m z n o
gram lesA lf
----------
IHopeYourProgramWorksForInputStringsWhichAre100CharactersLongBecauseThisTestCaseWillFailIfItDoesNot. 5
I gramW tStri 100Ch gBeca CaseW DoesN
H o o u n e a n u t i t o
o r r p g r r o s s l I t
p P k n s A a L e e l f .
eYour sForI Which cters ThisT FailI
----------
!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ 10
! <=>?@ABCDE `abcdefghi
" ; F _ j
# : G ^ k
$ 9 H ] l
% 8 I \ m
& 7 J [ n
' 6 K Z o ~
( 5 L Y p }
) 4 M X q |
*+,-./0123 NOPQRSTUVW rstuvwxyz{
code-golf
string
ascii-art
code-golf
code-golf
string
balanced-string
decision-problem
code-golf
string
geometry
grid
code-golf
tips
lisp
code-golf
quine
tips
king-of-the-hill
code-challenge
math
code-golf
string
palindrome
math
fastest-code
code-golf
string
counting
code-golf
code-golf
internet
code-golf
quine
source-layout
hello-world
code-golf
math
number
sequence
arithmetic
code-golf
ascii-art
grid
code-golf
number
grid
code-golf
string
crossword
code-golf
code-golf
ascii-art
grid
counting
code-golf
code-golf
math
sequence
arithmetic
number-theory
code-golf
code-golf
graphical-output
geometry
random
code-golf
ascii-art
grid
counting
code-golf
string
ascii-art
code-challenge
test-battery
code-golf
string
code-golf
ascii-art
kolmogorov-complexity
code-golf
interpreter
code-golf
math
sequence
code-golf
math
primes
set-partitions
code-golf
usuario81655
fuente
fuente
Respuestas:
Pyth,
4845444342 bytesPruébalo en línea.
Este enfoque hace el mismo abuso de espacios en blanco que la respuesta de Ruby.
fuente
Rubí, 87 bytes
Algunos abusos menores de la regla
Trailing spaces on each line are allowed.
Cada línea de salida tienew
caracteres largos, más una nueva línea, dondew
está la longitud de la cadena original, es decir, lo suficientemente larga como para contener toda la entrada. Por lo tanto, hay una gran cantidad de espacios en blanco innecesarios a la derecha para grandesn
.Sin golf en el programa de prueba
fuente
JavaScript (ES6), 143 bytes
Donde
\n
representa una nueva línea literal. Sin golf:fuente
Pyth,
857459 bytesKl@Q0J0=Y*]d-+*@Q1K@Q1 1FNr1@Q1=XY-+*KNN1b;VK=XYJ@@Q0N=+J@[+K1 1-_K1 1).&3/N-@Q1 1;sY
=G@Q1=H@Q0KlHJ0=Y*]dt+*GKGFNr1G=XYt+*KNNb;VK=XYJ@HN=+J@[hK1t_K1).&3/NtG;sY
¡Gracias a @FryAmTheEggman por ayudarme mucho!
Golfé tanto como pude. Pruébalo aquí! Por alguna razón, el ajuste de línea hace que la salida sea extraña. Es posible que desee ver el resultado en la página completa
Explicación
Respira un segundo y concéntrate. Esto se puede dividir en tres secciones, como casi cualquier algoritmo "clásico".
La primera sección
Es donde se inicializan las variables. Se puede dividir en dos partes:
la segunda parte :
La segunda sección
Contiene la lógica real.
La tercera sección
Esta es la parte de salida. No es realmente interesante ...
PRIMA
Escribí el programa pyth de este script python.
fuente
JavaScript (ES6), 122 bytes
Mismo algoritmo que la respuesta de @ LevelRiverSt.
fuente
C, 138 bytes
Esto usa escapes ANSI. Funciona en terminal de linux.
Sin golf:
fuente
JavaScript (ES6), 131
Algoritmo: mapeando la posición
x,y
en la salida al índice en la cadena de entrada, de alguna manera como esta respuesta (no relacionada).Tomé prestado de @LevelRiverSt el truco de mantener el ancho horizontal igual a la longitud de entrada.
Menos golf
Este fue el primer borrador de trabajo antes del golf
Prueba
fuente
Pyth, 122 bytes
Hice una fórmula para calcular las posiciones x, y de cada carácter en función del tamaño / módulo del segmento, pero se hicieron más grandes de lo que esperaba: c
Explicación:
Prueba aquí
Para las fórmulas matemáticas, utilicé mod para generar indicadores 0/1 y luego lo multipliqué por un factor basado en la entrada
n
, agregué la hoja de cálculo con cada paso en el fragmento debajoMostrar fragmento de código
fuente
PHP,
127126124120119118117110106 bytesUtiliza la codificación ISO-8859-1.
Ejecutar así (
-d
agregado solo por estética):Sin golf:
Ajustes
<
lugar de!=
0
principio, por lo que no tengo que anteponer otro0
(en caso de que la primera salida en una línea fuera a0
), produciendo verdad00
.$o[$y]
==
comparar la dirección con 1 para cambiar la coordenada xnull
aint
de desplazamiento de cadena, como se echa a compensar int todos modos cuerdas$c
fuente