Votre tâche consiste à, comme le titre le suggère discrètement, faire une mauvaise animation de fondu d'un mot se transformant en un deuxième mot pour le vôtre.
Quelle est exactement cette "animation de fondu" que vous pouvez demander?
Pour créer une animation de fondu spectaculaire (vraiment mauvaise), vous prenez deux chaînes qui ne contiendront que des caractères ASCII imprimables. Vous commencez par imprimer votre chaîne de départ (la première des deux). Ensuite, vous choisissez au hasard un caractère dans le mot d'origine et le remplacez par le caractère correspondant dans le mot que vous souhaitez animer. Lorsque les mots sont de longueur inégale, vous devez les garnir d'espaces.
Vous continuez ainsi jusqu'à ce que tous les personnages aient été modifiés, mais vous ne changerez pas le personnage à un certain index plus d'une fois . Voici un exemple d'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
Vous devez écrire une fonction ou un programme complet qui modifie une lettre, puis imprime la nouvelle chaîne par incréments d'une seconde. Le format d'entrée est lâche, mais le format de sortie est strict.
C'est le code-golf , donc le code le plus court en octets l'emporte.
Quelques cas de test (formulaire:) init -> final
:
Stringy -> Blingy
Banana -> Republic
United -> States
Make America -> Tissue box
I like walls -> I have small hands
Hello, -> world!
Implémentation de référence dans 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