Il tuo compito è, come suggerisce discretamente il titolo, realizzare una brutta animazione di una parola che si trasforma in una seconda parola per la tua.
Che cosa esattamente è questo "l'animazione fade" si può chiedere?
Per realizzare un'animazione di dissolvenza spettacolare (molto scadente), prendi due stringhe che conterranno solo caratteri ASCII stampabili. Si inizia stampando la stringa iniziale (la prima delle due). Quindi, scegli casualmente un carattere nella parola originale e lo cambi nel carattere corrispondente nella parola in cui vuoi animare. Quando le parole hanno una lunghezza diversa, è necessario riempirle di spazi.
Continui a farlo fino a quando tutti i personaggi non sono stati cambiati, ma non cambierai il personaggio in un determinato indice più di una volta . Ecco un esempio di 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
È necessario scrivere una funzione o un programma completo che modifica una lettera e quindi stampa la nuova stringa con incrementi di un secondo. Il formato di input è lento, ma il formato di output è rigoroso.
Questo è code-golf , quindi vince il codice più breve in byte.
Alcuni casi di test (modulo:) init -> final:
Stringy -> Blingy
Banana -> Republic
United -> States
Make America -> Tissue box
I like walls -> I have small hands
Hello, -> world!
Implementazione di riferimento in 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