타이틀이 신중하게 제안하는 것처럼, 한 단어가 당신을 위해 두 번째 단어로 바뀌는 나쁜 페이드 애니메이션을 만들어야합니다.
이 "페이드 애니메이션" 은 정확히 무엇입니까 ?
화려한 페이드 애니메이션을 만들려면 인쇄 가능한 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
문자를 변경 한 다음 1 초 단위로 새 문자열을 인쇄하는 함수 또는 전체 프로그램을 작성해야합니다. 입력 형식이 느슨하지만 출력 형식이 엄격합니다.
입니다 코드 골프 바이트의 승리에 너무 짧은 코드.
일부 테스트 사례 (형식 :) init -> final:
Stringy -> Blingy
Banana -> Republic
United -> States
Make America -> Tissue box
I like walls -> I have small hands
Hello, -> world!
파이썬 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