Ваше завдання полягає в тому, як стримано підказує заголовок, зробити погану згасаючу анімацію одного слова, перетворившись на друге слово по-справжньому.
Що саме є це «завмирання анімації» ви можете запитати?
Щоб зробити ефектну (дуже погану) анімацію зникаючої, ви берете два рядки, які містять лише друковані символи ASCII. Ви починаєте з друку початкового рядка (першого з двох). Потім ви безладно вибираєте символ у початковому слові та змінюєте його на відповідний символ у слові, на яке хочете анімувати. Коли слова мають різну довжину, ви повинні подушечка їх пробілами.
Ви продовжуєте робити це до тих пір, поки всі символи не будуть змінені, але ви не будете змінювати персонаж у певному індексі більше одного разу . Ось приклад i / o:
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