Виклик:
Вхід:
Ви берете два входи:
- рядок, що містить тільки файл для друку ASCII (за винятком пробілів, вкладок або нових рядків)
- символ для друку ASCII
Вихід:
Перший рядок буде містити рядок-вхід. Кожне i
перше виникнення цього персонажа -модуль-3 рухатиметься у південно-східному напрямку; кожне i
-модулі-3 секунди виникнення буде рухатися у південному напрямку; і кожне i
третє явище -модуло-3 рухатиметься у південно-західному напрямку. Ви будете продовжувати, поки символи знову не стануть у початковому початковому положенні (а це означає, що при необхідності він обернеться з однієї сторони на іншу), а потім знову надрукуєте останній рядок із введенням рядка на закінчити. (Зверніть увагу, що всі тестові випадки закінчуються на їх початковому введенні не більше, ніж length(input)
рядки, включаючи рядок, що містить провідний вхід. Це може бути швидше, як, як видно в цьому першому тестовому випадку нижче, довжиною 14, але закінчується після 9.)
Це все може бути досить невиразно, тому ось приклад:
Тестовий випадок 1:
Рядок-вхід: "This_is_a_test"
Символ-введення:'s'
Вихід:
This_is_a_test
s s s
ss s
s s
sss
sss
s s
ss s
s s s
This_is_a_test
Ось той самий тестовий випадок із кольоровими контурами трьох s
:
де перший 's'
йде зеленою стежкою в південно-східному напрямку; другий 's'
слід жовтою стежкою в південному напрямку; третя 's'
йде по світло-блакитній стежці в південно-західному напрямку. (Якщо буде четверта, 's'
вона пішла б знову в південно-східному напрямку, що можна побачити в деяких інших тестових випадках нижче.)
Правила виклику:
- Вхідні дані містять лише ASCII для друку (за винятком пробілів, вкладок та нових рядків)
- Формати вводу / виводу є гнучкими. Може бути рядком з обмеженою лінією, рядком символів тощо. Ваш дзвінок.
- Можливо, що даний символ не присутній у рядку, і в цьому випадку вам дозволяється виводити рядок введення один або два рази (тобто
"test", 'a'
може мати будь-який з цих можливих результатів:"test\ntest"
/"test"
). - Провідні простори є обов’язковими; пробіли проміжки необов’язкові. Допускається одна чи кілька нових / рядків, що ведуть / відкладають.
Загальні правила:
- Це код-гольф , тому найкоротша відповідь у байтах виграє.
Не дозволяйте мовам коду-гольфу відштовхувати вас від публікації відповідей з не кодовими гольф-мовами. Спробуйте придумати якомога коротшу відповідь на "будь-яку" мову програмування. - Для вашої відповіді застосовуються стандартні правила , тому вам дозволяється використовувати STDIN / STDOUT, функції / метод з відповідними параметрами та повним програмами типу "повернення". Твій дзвінок.
- Лазівки за замовчуванням заборонені.
- Якщо можливо, додайте посилання з тестом для вашого коду.
- Також, будь ласка, додайте пояснення, якщо це необхідно.
Тестові приклади / більше прикладів:
Тест 2:
Рядок-вхід: "abcabcabcabcabc"
Символ-введення:'b'
Вихід:
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
Ось такий же тестовий випадок із кольоровими стежками із п’яти a
:
Тест 3:
Рядок-вхід: "only_two_paths?"
Символ-введення:'o'
Вихід:
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?
Ось той самий тестовий випадок із кольоровими контурами двох o
:
Тестовий випадок 4:
String-input: "lollollollollol"
Введення символів:'l'
Вихід:
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
Ось такий же тестовий випадок із кольоровими стежками із десяти l
:
Тестовий випадок 5:
String-input: "AbCdEeDcBaAbCdEeDcBa_CCCCC"
Введення символів:'C'
Вихід:
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
Ось такий же тестовий випадок із кольоровими доріжками із семи C
:
Тестовий випадок 6:
String-input: "XyX"
Введення символів:'X'
Вихід:
XyX
XX
X
XyX
Ось той самий тестовий випадок із кольоровими контурами двох X
:
Тестовий випадок 7:
String-input: "aaaa"
Введення символів:'a'
Вихід:
aaaa
aa
aaa
aaa
aaaa
Ось такий самий тестовий випадок із кольоровими стежками із чотирьох a
:
length(input)
все знову збігається, але це може бути швидше, як доведеться перший тестовий випадок. Але, здається, ти справді маєш рацію щодо кратності 3 частини (хоча я не впевнений на 100%).