Ваша задача состоит в том, чтобы, как следует из названия, сделать плохую анимацию исчезновения одного слова, превращающегося во второе слово для вас по-настоящему.
Что именно является это «замирание анимации» вы можете спросить?
Чтобы создать эффектную (довольно плохую) анимацию затухания, вы берете две строки, которые будут содержать только печатные символы ASCII. Вы начинаете с печати вашей стартовой строки (первой из двух). Затем вы случайным образом выбираете символ в исходном слове и заменяете его на соответствующий символ в слове, которое хотите анимировать. Когда слова имеют неравную длину, вы должны дополнить их пробелами.
Вы продолжаете делать это до тех пор, пока все символы не будут изменены, но вы не будете менять персонажа с определенным индексом более одного раза . Вот пример ввода / вывода:
Hey -> Peeps
Hey # original string
Hey s # replace char at index 4
Hey s # replace char at index 1
Pey s # replace char at index 0
Pee s # replace char at index 2
Peeps # replace char at index 3
Вы должны написать функцию или полную программу, которая изменяет букву, а затем печатает новую строку с шагом в одну секунду. Формат ввода свободный, но формат вывода строгий.
Это код-гольф , поэтому выигрывает самый короткий код в байтах.
Некоторые тестовые случаи (Форма:) init -> final
:
Stringy -> Blingy
Banana -> Republic
United -> States
Make America -> Tissue box
I like walls -> I have small hands
Hello, -> world!
Ссылочная реализация в Python 2:
import random
import time
def F(c,f):
print c # before we do stuff
if len(c)>len(f):f+=" "*(len(c)-len(f)) # add padding part 1
if len(f)>len(c):c+=" "*(len(f)-len(c)) # add padding part 2
c, f = list(c), list(f)
ai = [i for i in range(len(c))] # a list for keeping track
while len(ai) > 0: # of available indices
time.sleep(1) # 1 second pause...
i = ai.pop(random.randint(0,len(ai)-1)) # get a random index and remove
c[i] = f[i] # it from the list
print ''.join(c) # print the new string