Une chaîne snakified ressemble à ceci:
T AnE eOf ifi ing
h s x l A k e r
isI amp Sna dSt
Ta tâche
Prenez une chaîne s
et une taille n
, puis affichez la chaîne capturée. Les entrées ThisIsAnExampleOfaSnakifiedString
et 3
produiraient l'exemple ci-dessus.
Caractéristiques
s
contiendra uniquement des caractères ASCII entre les points de code 33 et 126 inclus (sans espaces ni nouvelles lignes).s
comptera entre 1 et 100 caractères.n
est un entier représentant la taille de chaque segment de chaîne en sortie. Chaque ligne de caractères (haut / bas ou gauche / droite) qui composent les courbes du "serpent" estn
longue. Voir les cas de test pour des exemples.n
sera entre 3 et 10 inclus.- La chaîne de sortie commence toujours vers le bas.
- Les espaces de fin sur chaque ligne sont autorisés.
- Les nouvelles lignes suivies à la fin de la sortie sont également autorisées.
- Les espaces de début ne sont pas autorisés.
- code-golf signifie que le code le plus court en octets gagne.
Cas de test
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
utilisateur81655
la source
la source
Réponses:
Pyth,
4845444342 octetsEssayez-le en ligne.
Cette approche fait le même abus de fin d’espace que la réponse Ruby.
la source
Ruby, 87 octets
Quelques abus mineurs de la règle
Trailing spaces on each line are allowed.
Chaque ligne de sortie est constituée dew
caractères longs, plus un saut à la ligne, oùw
est la longueur de la chaîne d'origine, c'est-à-dire suffisamment longue pour contenir la totalité de l'entrée. Par conséquent, il y a beaucoup d'espaces inutiles à droite pour les grandsn
.Programme non testé
la source
JavaScript (ES6), 143 octets
Où
\n
représente un retour à la ligne littéral. Ungolfed:la source
Pyth,
857459 octetsKl@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
Merci à @FryAmTheEggman de m'avoir grandement aidé!
J'ai joué au golf autant que j'ai pu. Essayez-le ici! Pour une raison quelconque, le retour à la ligne rend la sortie étrange. Vous voudrez peut-être regarder le résultat en pleine page
Explication
Respirez une seconde et concentrez-vous. Cela peut être décomposé en trois sections, comme presque tout algorithme "classique".
La première section
C'est l'endroit où les variables sont initialisées. Il peut être divisé en deux parties:
La seconde partie :
La deuxième section
Il contient la logique réelle.
La troisième section
C'est la partie sortie. Pas vraiment intéressant ...
PRIME
J'ai écrit le programme pyth à partir de ce script python.
la source
JavaScript (ES6), 122 octets
Même algorithme que la réponse de @ LevelRiverSt.
la source
C, 138 octets
Ceci utilise les échappements ANSI. Fonctionne sur le terminal linux.
Ungolfed:
la source
JavaScript (ES6), 131
Algorithme: mapper la position
x,y
en sortie sur l'index de la chaîne d'entrée, en quelque sorte comme cette réponse (non liée).J'ai emprunté à @LevelRiverSt l'astuce de garder la largeur horizontale égale à la longueur d'entrée.
Moins joué au golf
Ce fut la première ébauche de travail avant de jouer au golf
Tester
la source
Pyth, 122 octets
J'ai créé une formule pour calculer les positions x, y de chaque caractère en fonction de la taille du segment / modulo, mais elles sont devenues plus grandes que prévu: c
Explication:
Testez ici
Pour les formules Math, j'ai utilisé mod pour générer des drapeaux 0/1, puis multiplié par un facteur basé sur l'entrée
n
, ajouté le tableur à chaque étape du fragment ci-dessous.Afficher l'extrait de code
la source
PHP,
127126124120119118117110 110106 octetsUtilise le codage ISO-8859-1.
Courez comme ceci (
-d
ajouté pour l'esthétique seulement):Ungolfed:
Tweaks
<
au lieu de!=
0
au début, je n'ai donc pas à en ajouter un autre0
(au cas où la première sortie d'une ligne était a0
), ce qui donne la vérité00
.$o[$y]
==
comparer la direction avec 1 pour changer la coordonnée xnull
dansint
de chaîne de décalage, en tant que chaîne de décalage est coulé à toute façon int$c
la source