Herausforderung:
Eingang:
Sie können zwei Eingaben vornehmen:
- Eine Zeichenfolge, die nur druckbares ASCII enthält (ohne Leerzeichen, Tabulatoren oder Zeilenumbrüche).
- Ein druckbares ASCII-Zeichen
Ausgabe:
Die erste Zeile enthält die Zeichenfolge-Eingabe. Jedes i
-modulo-3 erste Vorkommen dieses Charakters bewegt sich in südöstlicher Richtung; Jedes i
-modulo-3-Sekunden-Vorkommen bewegt sich in südlicher Richtung. und jedes i
-modulo-3 dritte Vorkommen bewegt sich in südwestlicher Richtung. Sie fahren fort, bis sich die Zeichen wieder an ihrer ursprünglichen Anfangsposition befinden (was bedeutet, dass sie bei Bedarf von einer Seite zur anderen umlaufen), und drucken dann die letzte Zeile mit der Zeichenfolge-Eingabe erneut aus Beende es. (Beachten Sie, dass alle Testfälle bei ihrer ursprünglichen Eingabe nach höchstens length(input)
Zeilen enden , einschließlich der Zeile, die die nachgestellte Eingabe enthält. Sie kann jedoch, wie in diesem ersten Testfall unten gezeigt, mit einer Länge von 14 früher sein, endet jedoch nach 9.)
Das mag alles ziemlich vage sein, also hier ein Beispiel:
Testfall 1:
String-Eingabe: "This_is_a_test"
Zeicheneingabe:'s'
Ausgabe:
This_is_a_test
s s s
ss s
s s
sss
sss
s s
ss s
s s s
This_is_a_test
Hier ist der gleiche Testfall mit den farbigen Pfaden der drei s
:
wo der erste 's'
dem grünen Pfad in südöstlicher Richtung folgt; der zweite 's'
folgt dem gelben Pfad in südlicher Richtung; und der dritte 's'
folgt dem hellblauen Pfad in südwestlicher Richtung. (Wenn es ein viertes geben 's'
würde, würde es wieder in südöstlicher Richtung verlaufen, was in einigen der folgenden Testfälle zu sehen ist.)
Herausforderungsregeln:
- Die Eingaben enthalten nur druckbare ASCII-Zeichen (ohne Leerzeichen, Tabulatoren und Zeilenumbrüche).
- E / A-Formate sind flexibel. Kann eine durch Zeilenumbrüche getrennte Zeichenfolge, Zeichenmatrix usw. sein. Ihr Anruf.
- Es ist möglich, dass das angegebene Zeichen in der Zeichenfolge nicht vorhanden ist. In diesem Fall können Sie die Eingabezeichenfolge entweder ein- oder zweimal ausgeben (dh, Sie
"test", 'a'
können eines dieser Zeichen als mögliche Ausgabe haben:"test\ntest"
/"test"
). - Führende Leerzeichen sind Pflichtfelder; Leerzeichen sind optional. Eine oder mehrere führende / nachfolgende neue Zeilen sind zulässig.
Allgemeine Regeln:
- Das ist Code-Golf , also gewinnt die kürzeste Antwort in Bytes.
Lassen Sie sich von Code-Golf-Sprachen nicht davon abhalten, Antworten mit Nicht-Codegolf-Sprachen zu veröffentlichen. Versuchen Sie, für jede Programmiersprache eine möglichst kurze Antwort zu finden. - Für Ihre Antwort gelten Standardregeln. Daher dürfen Sie STDIN / STDOUT, Funktionen / Methoden mit den richtigen Parametern und vollständige Programme vom Rückgabetyp verwenden. Ihr Anruf.
- Standardlücken sind verboten.
- Fügen Sie nach Möglichkeit einen Link mit einem Test für Ihren Code hinzu.
- Fügen Sie ggf. auch eine Erklärung hinzu.
Testfälle / weitere Beispiele:
Testfall 2:
String-Eingabe: "abcabcabcabcabc"
Zeicheneingabe:'b'
Ausgabe:
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
Hier ist der gleiche Testfall mit den farbigen Pfaden der fünf a
:
Testfall 3:
String-Eingabe: "only_two_paths?"
Zeicheneingabe:'o'
Ausgabe:
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?
Hier ist der gleiche Testfall mit den farbigen Pfaden der beiden o
:
Testfall 4:
String-Eingabe: "lollollollollol"
Zeicheneingabe:'l'
Ausgabe:
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
Hier der gleiche Testfall mit den farbigen Pfaden der Zehn l
:
Testfall 5:
String-Eingabe: "AbCdEeDcBaAbCdEeDcBa_CCCCC"
Zeicheneingabe:'C'
Ausgabe:
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
Hier ist der gleiche Testfall mit den farbigen Pfaden der Sieben C
:
Testfall 6:
String-Eingabe: "XyX"
Zeicheneingabe:'X'
Ausgabe:
XyX
XX
X
XyX
Hier ist der gleiche Testfall mit den farbigen Pfaden der beiden X
:
Testfall 7:
String-Eingabe: "aaaa"
Zeicheneingabe:'a'
Ausgabe:
aaaa
aa
aaa
aaa
aaaa
Hier ist der gleiche Testfall mit den farbigen Pfaden der vier a
:
length(input)
alles wieder zusammenpasst, aber es kann früher sein, wie der erste Testfall beweist. Aber es scheint, dass Sie in Bezug auf das Vielfache von 3 richtig liegen (obwohl ich mir nicht zu 100% sicher bin).