Su tarea es, como sugiere discretamente el título, hacer una animación de una palabra que se convierta en una segunda palabra para la suya.
¿Qué es exactamente esta "animación de desvanecimiento" que puede preguntar?
Para hacer una animación de desvanecimiento espectacular (muy mala), toma dos cadenas que contendrán solo caracteres ASCII imprimibles. Empiezas imprimiendo tu cadena inicial (la primera de las dos). Luego, elige aleatoriamente un carácter en la palabra original y lo cambia al carácter correspondiente en la palabra que desea animar. Cuando las palabras son de longitud desigual, se debe a rellenar con espacios.
Sigue haciendo esto hasta que se hayan cambiado todos los caracteres, pero no cambiará el carácter en un determinado índice más de una vez . Aquí hay un ejemplo 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
Debe escribir una función o un programa completo que cambie una letra y luego imprima la nueva cadena en incrementos de un segundo. El formato de entrada es suelto, pero el formato de salida es estricto.
Esto es código golf , por lo que gana el código más corto en bytes.
Algunos casos de prueba (Formulario init -> final):
Stringy -> Blingy
Banana -> Republic
United -> States
Make America -> Tissue box
I like walls -> I have small hands
Hello, -> world!
Implementación de referencia en 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