Ihre Aufgabe ist es, wie der Titel diskret andeutet, aus einem Wort eine schlechte Fade-Animation zu machen, die sich in ein zweites Wort für Sie verwandelt.
Was genau ist diese "Fade-Animation", die Sie vielleicht fragen?
Um eine spektakuläre (ziemlich schlechte) Fade-Animation zu erstellen, verwenden Sie zwei Zeichenfolgen, die nur druckbare ASCII-Zeichen enthalten. Sie beginnen, indem Sie Ihre Startzeichenfolge (die erste der beiden) drucken. Anschließend wählen Sie zufällig ein Zeichen im ursprünglichen Wort aus und ändern es in das entsprechende Zeichen im Wort, zu dem Sie animieren möchten. Wenn die Wörter ungleich lang sind, müssen Sie sie mit Leerzeichen auffüllen.
Sie machen so weiter, bis alle Zeichen geändert wurden, aber Sie werden das Zeichen an einem bestimmten Index nicht mehr als einmal ändern . Hier ist ein Beispiel 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
Sie müssen eine Funktion oder ein vollständiges Programm schreiben, das einen Buchstaben ändert, und dann die neue Zeichenfolge in Schritten von einer Sekunde drucken. Das Eingabeformat ist locker, aber das Ausgabeformat ist streng.
Das ist Code-Golf , also gewinnt der kürzeste Code in Bytes.
Einige Testfälle (Formular:) init -> final:
Stringy -> Blingy
Banana -> Republic
United -> States
Make America -> Tissue box
I like walls -> I have small hands
Hello, -> world!
Referenzimplementierung 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