Défi:
Contribution:
Vous prenez deux entrées:
- Une chaîne contenant uniquement de l'ASCII imprimable (à l'exclusion des espaces, des tabulations ou des nouvelles lignes)
- Un caractère ASCII imprimable
Sortie:
La première ligne contiendra l'entrée de chaîne. Chaque i
première occurrence de -modulo-3 de ce personnage se déplacera dans une direction sud-est; chaque i
occurrence de -modulo-3 se déplacera dans une direction sud; et chaque i
troisième occurrence de -modulo-3 se déplacera dans une direction sud-ouest. Vous continuerez jusqu'à ce que les caractères soient sur le point d'être à leur position de départ initiale (ce qui signifie qu'il s'enroulera d'un côté à l'autre si nécessaire), puis vous imprimerez à nouveau la dernière ligne avec l'entrée de chaîne dans Terminez-le. (Notez que tous les cas de test se retrouveront à leur entrée initiale après au plus des length(input)
lignes, y compris la ligne contenant l'entrée de fin. Cela peut être plus tôt cependant, comme on le voit dans ce premier cas de test ci-dessous, avec une longueur de 14, mais se terminant après 9.)
Tout cela peut être assez vague, alors voici un exemple:
Cas de test 1:
Entrée chaîne: Entrée "This_is_a_test"
caractère:'s'
Sortie:
This_is_a_test
s s s
ss s
s s
sss
sss
s s
ss s
s s s
This_is_a_test
Voici le même cas de test avec les chemins colorés des trois s
:
où le premier 's'
suit la voie verte dans une direction sud-est; le second 's'
suit le chemin jaune en direction du sud; et le troisième 's'
suit le chemin bleu clair dans une direction sud-ouest. (S'il y en avait un quatrième, 's'
il irait à nouveau dans une direction sud-est, comme on peut le voir dans certains des autres cas de test ci-dessous.)
Règles du défi:
- Les entrées ne contiendront que de l'ASCII imprimable (à l'exclusion des espaces, des tabulations et des nouvelles lignes)
- Les formats d'E / S sont flexibles. Peut être une chaîne délimitée par une nouvelle ligne, une matrice de caractères, etc. Votre appel.
- Il est possible que le caractère donné ne soit pas présent dans la chaîne, auquel cas vous êtes autorisé à sortir la chaîne d'entrée une ou deux fois (c'est
"test", 'a'
-à- dire que vous pouvez avoir l'une ou l'autre de ces sorties comme sortie possible:"test\ntest"
/"test"
). - Les espaces de tête sont obligatoires; les espaces de fin sont facultatifs. Une ou plusieurs nouvelles lignes de début / fin sont autorisées.
Règles générales:
- C'est le code-golf , donc la réponse la plus courte en octets l'emporte.
Ne laissez pas les langues de golf de code vous décourager de publier des réponses avec des langues autres que le golf de code. Essayez de trouver une réponse aussi courte que possible pour «n'importe quel» langage de programmation. - Des règles standard s'appliquent à votre réponse, vous êtes donc autorisé à utiliser STDIN / STDOUT, fonctions / méthode avec les paramètres appropriés et des programmes complets de type retour. Ton appel.
- Les failles par défaut sont interdites.
- Si possible, veuillez ajouter un lien avec un test pour votre code.
- Veuillez également ajouter une explication si nécessaire.
Cas de test / autres exemples:
Cas de test 2:
Entrée chaîne: Entrée "abcabcabcabcabc"
caractère:'b'
Sortie:
abcabcabcabcabc
b b b b b
bbb bb
b b
bbb bb
b b b b b
b b b b
b b b b b
bb b bb
b b b
bb bbb
b b bbb
b b b b
b bb bb
b b bb b
abcabcabcabcabc
Voici le même cas de test avec les chemins colorés des cinq a
:
Cas de test 3:
Entrée chaîne: Entrée "only_two_paths?"
caractère:'o'
Sortie:
only_two_paths?
o o
o o
o o
o o
o o
oo
o
oo
o o
o o
o o
o o
o o
o o
only_two_paths?
Voici le même cas de test avec les chemins colorés des deux o
:
Cas de test 4:
Entrée de chaîne: "lollollollollol"
entrée de caractères:'l'
Sortie:
lollollollollol
lll ll ll
ll ll ll
l ll ll ll ll
lll l ll l ll
llllll ll ll
l l ll ll
ll lll ll
l l l lll ll l
ll l ll l l
l l l l llll l
ll lll lll
l l l ll
ll lll lllll
l l l ll l ll
lollollollollol
Voici le même cas de test avec les chemins colorés des dix l
:
Cas de test 5:
Entrée de chaîne: "AbCdEeDcBaAbCdEeDcBa_CCCCC"
entrée de caractères:'C'
Sortie:
AbCdEeDcBaAbCdEeDcBa_CCCCC
C C C C C
C C C C CCC
C C C C C C C
C C C C C C C
C C C C C C C
C C C C C C C
C C C C C C C
C C C CC C C
C C CC C C
C C CC C C
C C CC C
CC CC C C
CC CC C C
C C CC C C
C C CC C C C
C C C C C C
C C CC C C C
C C C C C C C
C C C C C C C
C C C C C CC
C C C C C C
C C C C CCC
C C C CCCC
C C C C
C C CCCCC
AbCdEeDcBaAbCdEeDcBa_CCCCC
Voici le même cas de test avec les chemins colorés des sept C
:
Cas de test 6:
Entrée de chaîne: "XyX"
entrée de caractères:'X'
Sortie:
XyX
XX
X
XyX
Voici le même cas de test avec les chemins colorés des deux X
:
Cas de test 7:
Entrée de chaîne: "aaaa"
entrée de caractères:'a'
Sortie:
aaaa
aa
aaa
aaa
aaaa
Voici le même cas de test avec les chemins colorés des quatre a
:
length(input)
tout correspond à nouveau, mais cela peut être plus tôt, comme le prouve le premier cas de test. Mais il semble que vous ayez bien raison sur le multiple de 3 parties (même si je ne suis pas sûr à 100%).