Sua tarefa é, como o título sugere discretamente, fazer uma animação desbotada de uma palavra se transformando em uma segunda palavra para a sua verdadeiramente.
O que exatamente é essa "animação fade" que você pode perguntar?
Para criar uma animação desbotada espetacular (péssima), use duas seqüências que conterão apenas caracteres ASCII imprimíveis. Você começa imprimindo sua sequência inicial (a primeira das duas). Em seguida, você escolhe aleatoriamente um caractere na palavra original e o altera para o caractere correspondente na palavra que deseja animar. Quando as palavras tiverem comprimento desigual, você deverá preenchê-las com espaços.
Você continua fazendo isso até que todos os caracteres tenham sido alterados, mas não o mudará em um determinado índice mais de uma vez . Aqui está um exemplo de E / S:
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
Você deve escrever uma função ou programa completo que altere uma letra e depois imprima a nova seqüência de caracteres em incrementos de um segundo. O formato de entrada está solto, mas o formato de saída é rígido.
Isso é código-golfe , então o código mais curto em bytes vence.
Alguns casos de teste (formulário:) init -> final
:
Stringy -> Blingy
Banana -> Republic
United -> States
Make America -> Tissue box
I like walls -> I have small hands
Hello, -> world!
Implementação de referência no 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