Göreviniz, başlığın açıkça belirttiği gibi, bir kelimenin gerçekten sizin için ikinci bir kelimeye dönüşen kötü bir solma animasyonu yapmaktır.
Tam olarak ne olduğunu bu "fade animasyon" diye sorabilirsin?
Etkileyici (ly bad) solma animasyonu yapmak için, yalnızca yazdırılabilir ASCII karakterleri içeren iki dize alırsınız. Başlangıç dizenizi (ikisinin ilki) yazdırarak başlarsınız. Ardından, orijinal sözcükteki rastgele bir karakteri seçer ve animasyon yapmak istediğiniz sözcükteki karşılık gelen karakterle değiştirirsiniz. Kelimeler eşitsiz uzunlukta olduğunda, sen boşluklar kullanılır onları gerekir.
Tüm karakterler değiştirilene kadar bunu yapmaya devam edersiniz , ancak belirli bir dizindeki karakteri bir kereden fazla değiştirmezsiniz . İşte bir örnek 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
Harfi değiştiren ve yeni dizeyi bir saniyelik artışlarla basan bir işlev veya tam program yazmalısınız. Giriş biçimi gevşek, ancak çıkış biçimi katı.
Bu kod golf , bayt en kısa kod kazanır.
Bazı test senaryoları (Form:) init -> final
:
Stringy -> Blingy
Banana -> Republic
United -> States
Make America -> Tissue box
I like walls -> I have small hands
Hello, -> world!
Python 2'de referans uygulaması:
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