Ecco un esempio che ho appena scritto che accetta una matrice e restituisce spazi bianchi se necessario. È possibile decommentare la variabile di velocità per controllare la velocità in fase di esecuzione. Rimuove anche l'altro sleep 0.2 L'ultima parte dell'array deve essere vuota per produrre l'intero array, continuando a lavorare per risolverlo.
#@speed = ARGV[0]
strArray = [ "First String there are also things here to backspace", "Second Stringhereare other things too ahdafadsf", "Third String", "Forth String", "Fifth String", "Sixth String", " " ]
#array = [ "/", "-", "|", "|", "-", "\\", " "]
def makeNewLine(array)
diff = nil
print array[0], "\r"
for i in (1..array.count - 1)
#sleep @speed.to_f
sleep 0.2
if array[i].length < array[i - 1].length
diff = array[i - 1].length - array[i].length
end
print array[i]
diff.times { print " " } if !diff.nil?
print "\r"
$stdout.flush
end
end
20.times { makeNewLine(strArray) }
#20.times { makeNewLine(array)}
Hmm, mi piace la soluzione di @jsegal meglio, quindi scegli la sua risposta. Ricordati di "flush" il tuo output ancora. – cam
Sono diviso qui, perché la tua risposta è uno snippet di codice perfettamente funzionante di quello che ho chiesto esattamente: una soluzione in * Ruby *. Sì, potrebbe essere più elegante se usato il suggerimento di jsegal. Ma a) la risposta di jsegal non è specifica del ruby eb) Preferirei piuttosto una risposta con uno snippet di lavoro. Quindi ho intenzione di andare avanti e modificare la tua risposta per riflettere il suggerimento di jsegal, e quando/se quella modifica è accettata, accetterò la tua risposta e ricompenserò jsegal votandolo. È il meglio che posso fare con questo sistema. –
@Steph: il tuo dilemma su quale risposta accettare sembra principalmente basato sul fatto che la risposta di jsegal non includeva uno snippet di codice. Considerare Stack Overflow non è un sito di condivisione del codice, che sembra un requisito abbastanza arbitrario. Dovresti revocare le due risposte se le hai trovate utili e accettare quella che ti ha aiutato * di più * a trovare la soluzione che ha funzionato per te. –